|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*autocmd.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -236,7 +236,7 @@ autocmds.
|
|
| 236 |
|
| 237 |
*:autocmd-verbose*
|
| 238 |
When 'verbose' is non-zero, listing an autocommand will also display where it
|
| 239 |
-
was last defined.
|
| 240 |
|
| 241 |
:verbose autocmd BufEnter
|
| 242 |
FileExplorer BufEnter
|
|
@@ -344,7 +344,8 @@ Name triggered by ~
|
|
| 344 |
|GUIEnter| after starting the GUI successfully
|
| 345 |
|GUIFailed| after starting the GUI failed
|
| 346 |
|TermResponse| after the terminal response to |t_RV| is received
|
| 347 |
-
|TermResponseAll| after the terminal response to |t_RV| and others is
|
|
|
|
| 348 |
|
| 349 |
|QuitPre| when using `:quit`, before deciding whether to exit
|
| 350 |
|ExitPre| when using a command that may make Vim exit
|
|
@@ -381,7 +382,8 @@ Name triggered by ~
|
|
| 381 |
|FocusGained| Vim got input focus
|
| 382 |
|FocusLost| Vim lost input focus
|
| 383 |
|CursorHold| the user doesn't press a key for a while
|
| 384 |
-
|CursorHoldI| the user doesn't press a key for a while in Insert
|
|
|
|
| 385 |
|CursorMoved| the cursor was moved in Normal mode
|
| 386 |
|CursorMovedC| the cursor was moved in the |Command-line|
|
| 387 |
|CursorMovedI| the cursor was moved in Insert mode
|
|
@@ -566,7 +568,8 @@ BufWinEnter After a buffer is displayed in a window. This
|
|
| 566 |
since it reloads that buffer.
|
| 567 |
Does not happen for a terminal window, because
|
| 568 |
it starts in Terminal-Job mode and Normal mode
|
| 569 |
-
commands won't work.
|
|
|
|
| 570 |
*BufWinLeave*
|
| 571 |
BufWinLeave Before a buffer is removed from a window.
|
| 572 |
Not when it's still visible in another window.
|
|
@@ -679,7 +682,7 @@ ColorScheme After loading a color scheme. |:colorscheme|
|
|
| 679 |
Not triggered if the color scheme is not
|
| 680 |
found.
|
| 681 |
The pattern is matched against the
|
| 682 |
-
colorscheme name.
|
| 683 |
name of the actual file where this option was
|
| 684 |
set, and <amatch> for the new colorscheme
|
| 685 |
name.
|
|
@@ -748,7 +751,7 @@ CursorHold When the user doesn't press a key for the time
|
|
| 748 |
triggered. |q|
|
| 749 |
*<CursorHold>*
|
| 750 |
Internally the autocommand is triggered by the
|
| 751 |
-
<CursorHold> key.
|
| 752 |
|getchar()| may see this character.
|
| 753 |
|
| 754 |
Note: Interactive commands cannot be used for
|
|
@@ -1014,7 +1017,7 @@ InsertLeave Just after leaving Insert mode. Also when
|
|
| 1014 |
using CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
|
| 1015 |
*KeyInputPre*
|
| 1016 |
KeyInputPre Just before a key is processed after mappings
|
| 1017 |
-
have been applied.
|
| 1018 |
against a string that indicates the current
|
| 1019 |
mode, which is the same as what is returned by
|
| 1020 |
`mode(1)`.
|
|
@@ -1046,7 +1049,7 @@ MenuPopup Just before showing the popup menu (under the
|
|
| 1046 |
c Command line
|
| 1047 |
tl Terminal
|
| 1048 |
*ModeChanged*
|
| 1049 |
-
ModeChanged After changing the mode.
|
| 1050 |
matched against `'old_mode:new_mode'`, for
|
| 1051 |
example match against `*:c*` to simulate
|
| 1052 |
|CmdlineEnter|.
|
|
@@ -1082,7 +1085,7 @@ OptionSet After setting an option. The pattern is
|
|
| 1082 |
|
| 1083 |
|v:option_oldlocal| is only set when |:set|
|
| 1084 |
or |:setlocal| or a |modeline| was used to set
|
| 1085 |
-
the option.
|
| 1086 |
only set when |:set| or |:setglobal| was used.
|
| 1087 |
|
| 1088 |
This does not set |<abuf>|, you could use
|
|
@@ -1090,10 +1093,10 @@ OptionSet After setting an option. The pattern is
|
|
| 1090 |
|
| 1091 |
Note that when setting a |global-local| string
|
| 1092 |
option with |:set|, then |v:option_old| is the
|
| 1093 |
-
old global value.
|
| 1094 |
-
of options (local string options,
|
| 1095 |
-
number options, ...) it is the
|
| 1096 |
-
value.
|
| 1097 |
|
| 1098 |
OptionSet is not triggered on startup and for
|
| 1099 |
the 'key' option for obvious reasons.
|
|
@@ -1105,7 +1108,7 @@ OptionSet After setting an option. The pattern is
|
|
| 1105 |
|
| 1106 |
Note: It's a bad idea to reset an option
|
| 1107 |
during this autocommand, this may break a
|
| 1108 |
-
plugin.
|
| 1109 |
triggering this autocommand.
|
| 1110 |
|
| 1111 |
When using |:set| in the autocommand the event
|
|
@@ -1130,7 +1133,7 @@ QuickFixCmdPre Before a quickfix command is run (|:make|,
|
|
| 1130 |
*QuickFixCmdPost*
|
| 1131 |
QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
|
| 1132 |
command is run, before jumping to the first
|
| 1133 |
-
location.
|
| 1134 |
it is run after the error file is read and
|
| 1135 |
before moving to the first error.
|
| 1136 |
See |QuickFixCmdPost-example|.
|
|
@@ -1174,7 +1177,7 @@ SafeState When nothing is pending, going to wait for the
|
|
| 1174 |
screen was scrolled for messages.
|
| 1175 |
*SafeStateAgain*
|
| 1176 |
SafeStateAgain Like SafeState but after processing any
|
| 1177 |
-
messages and invoking callbacks.
|
| 1178 |
triggered often, don't do something that takes
|
| 1179 |
time.
|
| 1180 |
|
|
@@ -1278,12 +1281,12 @@ TermChanged After the value of 'term' has changed. Useful
|
|
| 1278 |
settings. Executed for all loaded buffers.
|
| 1279 |
*TerminalOpen*
|
| 1280 |
TerminalOpen Just after a terminal buffer was created, with
|
| 1281 |
-
`:terminal` or |term_start()|.
|
| 1282 |
triggered even if the buffer is created
|
| 1283 |
without a window, with the ++hidden option.
|
| 1284 |
*TerminalWinOpen*
|
| 1285 |
TerminalWinOpen Just after a terminal buffer was created, with
|
| 1286 |
-
`:terminal` or |term_start()|.
|
| 1287 |
triggered only if the buffer is created
|
| 1288 |
with a window. Can be used to set window
|
| 1289 |
local options for the terminal window.
|
|
@@ -1480,7 +1483,7 @@ WinLeave Before leaving a window. If the window to be
|
|
| 1480 |
Not used for ":qa" or ":q" when exiting Vim.
|
| 1481 |
|
| 1482 |
*WinNewPre*
|
| 1483 |
-
WinNewPre Before creating a new window.
|
| 1484 |
before commands that modify window layout by
|
| 1485 |
creating a split.
|
| 1486 |
Not done when creating tab pages and for the
|
|
@@ -1789,8 +1792,8 @@ option will not cause any commands to be executed.
|
|
| 1789 |
After applying the autocommands the modelines are
|
| 1790 |
processed, so that their settings overrule the
|
| 1791 |
settings from autocommands, like what happens when
|
| 1792 |
-
editing a file.
|
| 1793 |
-
argument is present.
|
| 1794 |
<nomodeline> for events that are not used when loading
|
| 1795 |
a buffer, such as |User|.
|
| 1796 |
Processing modelines is also skipped when no
|
|
@@ -1802,7 +1805,7 @@ option will not cause any commands to be executed.
|
|
| 1802 |
loaded buffer. The current buffer is done last.
|
| 1803 |
|
| 1804 |
Note that [fname] is used to select the autocommands,
|
| 1805 |
-
not the buffers to which they are applied.
|
| 1806 |
augroup mine
|
| 1807 |
autocmd!
|
| 1808 |
autocmd FileType * echo expand('<amatch>')
|
|
|
|
| 1 |
+
*autocmd.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 236 |
|
| 237 |
*:autocmd-verbose*
|
| 238 |
When 'verbose' is non-zero, listing an autocommand will also display where it
|
| 239 |
+
was last defined. Example: >
|
| 240 |
|
| 241 |
:verbose autocmd BufEnter
|
| 242 |
FileExplorer BufEnter
|
|
|
|
| 344 |
|GUIEnter| after starting the GUI successfully
|
| 345 |
|GUIFailed| after starting the GUI failed
|
| 346 |
|TermResponse| after the terminal response to |t_RV| is received
|
| 347 |
+
|TermResponseAll| after the terminal response to |t_RV| and others is
|
| 348 |
+
received
|
| 349 |
|
| 350 |
|QuitPre| when using `:quit`, before deciding whether to exit
|
| 351 |
|ExitPre| when using a command that may make Vim exit
|
|
|
|
| 382 |
|FocusGained| Vim got input focus
|
| 383 |
|FocusLost| Vim lost input focus
|
| 384 |
|CursorHold| the user doesn't press a key for a while
|
| 385 |
+
|CursorHoldI| the user doesn't press a key for a while in Insert
|
| 386 |
+
mode
|
| 387 |
|CursorMoved| the cursor was moved in Normal mode
|
| 388 |
|CursorMovedC| the cursor was moved in the |Command-line|
|
| 389 |
|CursorMovedI| the cursor was moved in Insert mode
|
|
|
|
| 568 |
since it reloads that buffer.
|
| 569 |
Does not happen for a terminal window, because
|
| 570 |
it starts in Terminal-Job mode and Normal mode
|
| 571 |
+
commands won't work. Use |TerminalOpen|
|
| 572 |
+
instead.
|
| 573 |
*BufWinLeave*
|
| 574 |
BufWinLeave Before a buffer is removed from a window.
|
| 575 |
Not when it's still visible in another window.
|
|
|
|
| 682 |
Not triggered if the color scheme is not
|
| 683 |
found.
|
| 684 |
The pattern is matched against the
|
| 685 |
+
colorscheme name. <afile> can be used for the
|
| 686 |
name of the actual file where this option was
|
| 687 |
set, and <amatch> for the new colorscheme
|
| 688 |
name.
|
|
|
|
| 751 |
triggered. |q|
|
| 752 |
*<CursorHold>*
|
| 753 |
Internally the autocommand is triggered by the
|
| 754 |
+
<CursorHold> key. In an expression mapping
|
| 755 |
|getchar()| may see this character.
|
| 756 |
|
| 757 |
Note: Interactive commands cannot be used for
|
|
|
|
| 1017 |
using CTRL-O |i_CTRL-O|. But not for |i_CTRL-C|.
|
| 1018 |
*KeyInputPre*
|
| 1019 |
KeyInputPre Just before a key is processed after mappings
|
| 1020 |
+
have been applied. The pattern is matched
|
| 1021 |
against a string that indicates the current
|
| 1022 |
mode, which is the same as what is returned by
|
| 1023 |
`mode(1)`.
|
|
|
|
| 1049 |
c Command line
|
| 1050 |
tl Terminal
|
| 1051 |
*ModeChanged*
|
| 1052 |
+
ModeChanged After changing the mode. The pattern is
|
| 1053 |
matched against `'old_mode:new_mode'`, for
|
| 1054 |
example match against `*:c*` to simulate
|
| 1055 |
|CmdlineEnter|.
|
|
|
|
| 1085 |
|
| 1086 |
|v:option_oldlocal| is only set when |:set|
|
| 1087 |
or |:setlocal| or a |modeline| was used to set
|
| 1088 |
+
the option. Similarly |v:option_oldglobal| is
|
| 1089 |
only set when |:set| or |:setglobal| was used.
|
| 1090 |
|
| 1091 |
This does not set |<abuf>|, you could use
|
|
|
|
| 1093 |
|
| 1094 |
Note that when setting a |global-local| string
|
| 1095 |
option with |:set|, then |v:option_old| is the
|
| 1096 |
+
old global value. However, for all other
|
| 1097 |
+
kinds of options (local string options,
|
| 1098 |
+
global-local number options, ...) it is the
|
| 1099 |
+
old local value.
|
| 1100 |
|
| 1101 |
OptionSet is not triggered on startup and for
|
| 1102 |
the 'key' option for obvious reasons.
|
|
|
|
| 1108 |
|
| 1109 |
Note: It's a bad idea to reset an option
|
| 1110 |
during this autocommand, this may break a
|
| 1111 |
+
plugin. You can always use `:noa` to prevent
|
| 1112 |
triggering this autocommand.
|
| 1113 |
|
| 1114 |
When using |:set| in the autocommand the event
|
|
|
|
| 1133 |
*QuickFixCmdPost*
|
| 1134 |
QuickFixCmdPost Like QuickFixCmdPre, but after a quickfix
|
| 1135 |
command is run, before jumping to the first
|
| 1136 |
+
location. For |:cfile| and |:lfile| commands
|
| 1137 |
it is run after the error file is read and
|
| 1138 |
before moving to the first error.
|
| 1139 |
See |QuickFixCmdPost-example|.
|
|
|
|
| 1177 |
screen was scrolled for messages.
|
| 1178 |
*SafeStateAgain*
|
| 1179 |
SafeStateAgain Like SafeState but after processing any
|
| 1180 |
+
messages and invoking callbacks. This may be
|
| 1181 |
triggered often, don't do something that takes
|
| 1182 |
time.
|
| 1183 |
|
|
|
|
| 1281 |
settings. Executed for all loaded buffers.
|
| 1282 |
*TerminalOpen*
|
| 1283 |
TerminalOpen Just after a terminal buffer was created, with
|
| 1284 |
+
`:terminal` or |term_start()|. This event is
|
| 1285 |
triggered even if the buffer is created
|
| 1286 |
without a window, with the ++hidden option.
|
| 1287 |
*TerminalWinOpen*
|
| 1288 |
TerminalWinOpen Just after a terminal buffer was created, with
|
| 1289 |
+
`:terminal` or |term_start()|. This event is
|
| 1290 |
triggered only if the buffer is created
|
| 1291 |
with a window. Can be used to set window
|
| 1292 |
local options for the terminal window.
|
|
|
|
| 1483 |
Not used for ":qa" or ":q" when exiting Vim.
|
| 1484 |
|
| 1485 |
*WinNewPre*
|
| 1486 |
+
WinNewPre Before creating a new window. Triggered
|
| 1487 |
before commands that modify window layout by
|
| 1488 |
creating a split.
|
| 1489 |
Not done when creating tab pages and for the
|
|
|
|
| 1792 |
After applying the autocommands the modelines are
|
| 1793 |
processed, so that their settings overrule the
|
| 1794 |
settings from autocommands, like what happens when
|
| 1795 |
+
editing a file. This is skipped when the <nomodeline>
|
| 1796 |
+
argument is present. You probably want to use
|
| 1797 |
<nomodeline> for events that are not used when loading
|
| 1798 |
a buffer, such as |User|.
|
| 1799 |
Processing modelines is also skipped when no
|
|
|
|
| 1805 |
loaded buffer. The current buffer is done last.
|
| 1806 |
|
| 1807 |
Note that [fname] is used to select the autocommands,
|
| 1808 |
+
not the buffers to which they are applied. Example: >
|
| 1809 |
augroup mine
|
| 1810 |
autocmd!
|
| 1811 |
autocmd FileType * echo expand('<amatch>')
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*builtin.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -889,7 +889,7 @@ append({lnum}, {text}) *append()*
|
|
| 889 |
appendbufline({buf}, {lnum}, {text}) *appendbufline()*
|
| 890 |
Like |append()| but append the text in buffer {buf}.
|
| 891 |
|
| 892 |
-
This function works only for loaded buffers.
|
| 893 |
|bufload()| if needed.
|
| 894 |
|
| 895 |
For the use of {buf}, see |bufname()|.
|
|
@@ -903,7 +903,7 @@ appendbufline({buf}, {lnum}, {text}) *appendbufline()*
|
|
| 903 |
In |Vim9| script an error is given for an invalid {lnum}.
|
| 904 |
|
| 905 |
If {buf} is not a valid buffer or {lnum} is not valid, an
|
| 906 |
-
error message is given.
|
| 907 |
:let failed = appendbufline(13, 0, "# THE START")
|
| 908 |
< However, when {text} is an empty list then no error is given
|
| 909 |
for an invalid {lnum}, since {lnum} isn't actually used.
|
|
@@ -1036,19 +1036,19 @@ autocmd_add({acmds}) *autocmd_add()*
|
|
| 1036 |
If this item is specified, then the "pattern"
|
| 1037 |
item is ignored.
|
| 1038 |
cmd Ex command to execute for this autocmd event
|
| 1039 |
-
event autocmd event name.
|
| 1040 |
This can be either a String with a single
|
| 1041 |
event name or a List of event names.
|
| 1042 |
-
group autocmd group name.
|
| 1043 |
If this group doesn't exist then it is
|
| 1044 |
created. If not specified or empty, then the
|
| 1045 |
default group is used.
|
| 1046 |
nested boolean flag, set to v:true to add a nested
|
| 1047 |
autocmd. Refer to |autocmd-nested|.
|
| 1048 |
once boolean flag, set to v:true to add an autocmd
|
| 1049 |
-
which executes only once.
|
| 1050 |
|autocmd-once|.
|
| 1051 |
-
pattern autocmd pattern string.
|
| 1052 |
|autocmd-patterns|. If "bufnr" item is
|
| 1053 |
present, then this item is ignored. This can
|
| 1054 |
be a String with a single pattern or a List of
|
|
@@ -1057,7 +1057,8 @@ autocmd_add({acmds}) *autocmd_add()*
|
|
| 1057 |
commands associated with the specified autocmd
|
| 1058 |
event and group and add the {cmd}. This is
|
| 1059 |
useful to avoid adding the same command
|
| 1060 |
-
multiple times for an autocmd event in a
|
|
|
|
| 1061 |
|
| 1062 |
Returns v:true on success and v:false on failure.
|
| 1063 |
Examples: >
|
|
@@ -1080,21 +1081,21 @@ autocmd_delete({acmds}) *autocmd_delete()*
|
|
| 1080 |
|
| 1081 |
The {acmds} argument is a List where each item is a Dict with
|
| 1082 |
the following optional items:
|
| 1083 |
-
bufnr buffer number to delete a buffer-local
|
| 1084 |
-
If this item is specified, then the
|
| 1085 |
-
item is ignored.
|
| 1086 |
cmd Ex command for this autocmd event
|
| 1087 |
-
event autocmd event name.
|
| 1088 |
If '*' then all the autocmd events in this
|
| 1089 |
group are deleted.
|
| 1090 |
-
group autocmd group name.
|
| 1091 |
If not specified or empty, then the default
|
| 1092 |
group is used.
|
| 1093 |
nested set to v:true for a nested autocmd.
|
| 1094 |
Refer to |autocmd-nested|.
|
| 1095 |
once set to v:true for an autocmd which executes
|
| 1096 |
-
only once.
|
| 1097 |
-
pattern autocmd pattern string.
|
| 1098 |
|autocmd-patterns|. If "bufnr" item is
|
| 1099 |
present, then this item is ignored.
|
| 1100 |
|
|
@@ -1128,22 +1129,22 @@ autocmd_delete({acmds}) *autocmd_delete()*
|
|
| 1128 |
|
| 1129 |
|
| 1130 |
autocmd_get([{opts}]) *autocmd_get()*
|
| 1131 |
-
Returns a |List| of autocmds.
|
| 1132 |
returns the autocmds for all the events in all the groups.
|
| 1133 |
|
| 1134 |
The optional {opts} Dict argument supports the following
|
| 1135 |
items:
|
| 1136 |
-
group Autocmd group name.
|
| 1137 |
-
the autocmds defined in this group.
|
| 1138 |
-
specified group doesn't exist, results in
|
| 1139 |
-
error message. If set to an empty string,
|
| 1140 |
then the default autocmd group is used.
|
| 1141 |
-
event Autocmd event name.
|
| 1142 |
-
the autocmds defined for this event. If
|
| 1143 |
-
to "*", then returns autocmds for all the
|
| 1144 |
events. If the specified event doesn't exist,
|
| 1145 |
results in an error message.
|
| 1146 |
-
pattern Autocmd pattern.
|
| 1147 |
the autocmds defined for this pattern.
|
| 1148 |
A combination of the above three times can be supplied in
|
| 1149 |
{opts}.
|
|
@@ -1155,11 +1156,12 @@ autocmd_get([{opts}]) *autocmd_get()*
|
|
| 1155 |
event Autocmd event name.
|
| 1156 |
group Autocmd group name.
|
| 1157 |
nested Boolean flag, set to v:true for a nested
|
| 1158 |
-
autocmd.
|
| 1159 |
once Boolean flag, set to v:true, if the autocmd
|
| 1160 |
-
will be executed only once.
|
| 1161 |
pattern Autocmd pattern. For a buffer-local
|
| 1162 |
-
autocmd, this will be of the form
|
|
|
|
| 1163 |
If there are multiple commands for an autocmd event in a
|
| 1164 |
group, then separate items are returned for each command.
|
| 1165 |
|
|
@@ -1510,7 +1512,7 @@ bufnr([{buf} [, {create}]]) *bufnr()*
|
|
| 1510 |
{create} argument is present and TRUE, a new, unlisted,
|
| 1511 |
buffer is created and its number is returned. Example: >
|
| 1512 |
let newbuf = bufnr('Scratch001', 1)
|
| 1513 |
-
< Using an empty name uses the current buffer.
|
| 1514 |
buffer with an empty name use |bufadd()|.
|
| 1515 |
|
| 1516 |
bufnr("$") is the last buffer: >
|
|
@@ -1698,7 +1700,8 @@ char2nr({string} [, {utf8}]) *char2nr()*
|
|
| 1698 |
Examples: >
|
| 1699 |
char2nr(" ") returns 32
|
| 1700 |
char2nr("ABC") returns 65
|
| 1701 |
-
< When {utf8} is omitted or zero, the current 'encoding' is
|
|
|
|
| 1702 |
Example for "utf-8": >
|
| 1703 |
char2nr("á") returns 225
|
| 1704 |
char2nr("á"[0]) returns 195
|
|
@@ -1763,7 +1766,7 @@ charidx({string}, {idx} [, {countcc} [, {utf16}]])
|
|
| 1763 |
index in the String {expr} instead of as the byte index.
|
| 1764 |
|
| 1765 |
Returns -1 if the arguments are invalid or if there are less
|
| 1766 |
-
than {idx} bytes.
|
| 1767 |
of the string in characters is returned.
|
| 1768 |
|
| 1769 |
An error is given and -1 is returned if the first argument is
|
|
@@ -1855,7 +1858,7 @@ cmdcomplete_info() *cmdcomplete_info()*
|
|
| 1855 |
completion began.
|
| 1856 |
pum_visible |TRUE| if popup menu is visible.
|
| 1857 |
See |pumvisible()|.
|
| 1858 |
-
matches List of all completion candidates.
|
| 1859 |
is a string.
|
| 1860 |
selected Selected item index. First index is zero.
|
| 1861 |
Index is -1 if no item is selected (showing
|
|
@@ -1877,7 +1880,7 @@ col({expr} [, {winid}]) *col()*
|
|
| 1877 |
When {expr} is "$", it means the end of the cursor line, so
|
| 1878 |
the result is the number of bytes in the cursor line plus one.
|
| 1879 |
Additionally {expr} can be [lnum, col]: a |List| with the line
|
| 1880 |
-
and column number.
|
| 1881 |
the last column of a specific line. When "lnum" or "col" is
|
| 1882 |
out of range then col() returns zero.
|
| 1883 |
|
|
@@ -1914,7 +1917,7 @@ col({expr} [, {winid}]) *col()*
|
|
| 1914 |
|
| 1915 |
|
| 1916 |
complete({startcol}, {matches}) *complete()* *E785*
|
| 1917 |
-
Set the matches for Insert mode completion.
|
| 1918 |
used in Insert mode. Typically invoked from a mapping with
|
| 1919 |
CTRL-R = (see |i_CTRL-R|), but may also be called from a
|
| 1920 |
|<Cmd>| or |<ScriptCmd>| mapping. It does not work after
|
|
@@ -2001,12 +2004,13 @@ complete_info([{what}]) *complete_info()*
|
|
| 2001 |
See |complete_info_mode| for the values.
|
| 2002 |
pum_visible |TRUE| if popup menu is visible.
|
| 2003 |
See |pumvisible()|.
|
| 2004 |
-
items List of all completion candidates.
|
| 2005 |
is a dictionary containing the entries "word",
|
| 2006 |
-
"abbr", "menu", "kind", "info" and
|
|
|
|
| 2007 |
See |complete-items|.
|
| 2008 |
matches Same as "items", but only returns items that
|
| 2009 |
-
are matching current query.
|
| 2010 |
and "items" are in "what", the returned list
|
| 2011 |
will still be named "items", but each item
|
| 2012 |
will have an additional "match" field.
|
|
@@ -2045,7 +2049,7 @@ complete_info([{what}]) *complete_info()*
|
|
| 2045 |
{what} are silently ignored.
|
| 2046 |
|
| 2047 |
To get the position and size of the popup menu, see
|
| 2048 |
-
|pum_getpos()|.
|
| 2049 |
|CompleteChanged| event.
|
| 2050 |
|
| 2051 |
Returns an empty |Dictionary| on error.
|
|
@@ -2065,13 +2069,13 @@ complete_info([{what}]) *complete_info()*
|
|
| 2065 |
|
| 2066 |
complete_match([{lnum}, {col}]) *complete_match()*
|
| 2067 |
Searches backward from the given position and returns a List
|
| 2068 |
-
of matches according to the 'isexpand' option.
|
| 2069 |
arguments are provided, uses the current cursor position.
|
| 2070 |
|
| 2071 |
Each match is represented as a List containing
|
| 2072 |
[startcol, trigger_text] where:
|
| 2073 |
- startcol: column position where completion should start,
|
| 2074 |
-
or -1 if no trigger position is found.
|
| 2075 |
triggers, returns the column of the first character.
|
| 2076 |
- trigger_text: the matching trigger string from 'isexpand',
|
| 2077 |
or empty string if no match was found or when using the
|
|
@@ -2228,7 +2232,7 @@ count({comp}, {expr} [, {ic} [, {start}]]) *count()* *E706*
|
|
| 2228 |
When {ic} is given and it's |TRUE| then case is ignored.
|
| 2229 |
|
| 2230 |
When {comp} is a string then the number of not overlapping
|
| 2231 |
-
occurrences of {expr} is returned.
|
| 2232 |
{expr} is an empty string.
|
| 2233 |
|
| 2234 |
Can also be used as a |method|: >
|
|
@@ -2322,7 +2326,7 @@ cursor({list})
|
|
| 2322 |
debugbreak({pid}) *debugbreak()*
|
| 2323 |
Specifically used to interrupt a program being debugged. It
|
| 2324 |
will cause process {pid} to get a SIGTRAP. Behavior for other
|
| 2325 |
-
processes is undefined.
|
| 2326 |
{only available on MS-Windows}
|
| 2327 |
|
| 2328 |
Returns |TRUE| if successfully interrupted the program.
|
|
@@ -2397,13 +2401,13 @@ deletebufline({buf}, {first} [, {last}]) *deletebufline()*
|
|
| 2397 |
If {last} is omitted then delete line {first} only.
|
| 2398 |
On success 0 is returned, on failure 1 is returned.
|
| 2399 |
|
| 2400 |
-
This function works only for loaded buffers.
|
| 2401 |
|bufload()| if needed.
|
| 2402 |
|
| 2403 |
For the use of {buf}, see |bufname()| above.
|
| 2404 |
|
| 2405 |
-
{first} and {last} are used like with |getline()|.
|
| 2406 |
-
when using |line()| this refers to the current buffer.
|
| 2407 |
to refer to the last line in buffer {buf}.
|
| 2408 |
|
| 2409 |
Can also be used as a |method|: >
|
|
@@ -2640,7 +2644,7 @@ digraph_setlist({digraphlist}) *digraph_setlist()*
|
|
| 2640 |
|
| 2641 |
echoraw({string}) *echoraw()*
|
| 2642 |
Output {string} as-is, including unprintable characters.
|
| 2643 |
-
This can be used to output a terminal code.
|
| 2644 |
disable modifyOtherKeys: >
|
| 2645 |
call echoraw(&t_TE)
|
| 2646 |
< and to enable it again: >
|
|
@@ -2673,7 +2677,7 @@ empty({expr}) *empty()*
|
|
| 2673 |
|
| 2674 |
|
| 2675 |
environ() *environ()*
|
| 2676 |
-
Return all of environment variables as dictionary.
|
| 2677 |
check if an environment variable exists like this: >
|
| 2678 |
:echo has_key(environ(), 'HOME')
|
| 2679 |
< Note that the variable name may be CamelCase; to ignore case
|
|
@@ -3157,21 +3161,21 @@ feedkeys({string} [, {mode}]) *feedkeys()*
|
|
| 3157 |
{string}.
|
| 3158 |
|
| 3159 |
To include special keys into {string}, use double-quotes
|
| 3160 |
-
and "\..." notation |expr-quote|.
|
| 3161 |
-
feedkeys("\<CR>") simulates pressing of the <Enter> key.
|
| 3162 |
feedkeys('\<CR>') pushes 5 characters.
|
| 3163 |
A special code that might be useful is <Ignore>, it exits the
|
| 3164 |
wait for a character without doing anything. *<Ignore>*
|
| 3165 |
|
| 3166 |
{mode} is a String, which can contain these character flags:
|
| 3167 |
-
'm' Remap keys.
|
| 3168 |
keys are remapped.
|
| 3169 |
'n' Do not remap keys.
|
| 3170 |
't' Handle keys as if typed; otherwise they are handled as
|
| 3171 |
if coming from a mapping. This matters for undo,
|
| 3172 |
opening folds, etc.
|
| 3173 |
'L' Lowlevel input. Only works for Unix or when using the
|
| 3174 |
-
GUI.
|
| 3175 |
terminal. Other flags are not used. *E980*
|
| 3176 |
When a CTRL-C interrupts and 't' is included it sets
|
| 3177 |
the internal "got_int" flag.
|
|
@@ -3191,7 +3195,7 @@ feedkeys({string} [, {mode}]) *feedkeys()*
|
|
| 3191 |
legacy script syntax applies, "s:var" does not work,
|
| 3192 |
etc. Note that if the string being fed sets a script
|
| 3193 |
context this still applies.
|
| 3194 |
-
'!' When used with 'x' will not end Insert mode.
|
| 3195 |
used in a test when a timer is set to exit Insert mode
|
| 3196 |
a little later. Useful for testing CursorHoldI.
|
| 3197 |
|
|
@@ -3204,7 +3208,7 @@ feedkeys({string} [, {mode}]) *feedkeys()*
|
|
| 3204 |
|
| 3205 |
|
| 3206 |
filecopy({from}, {to}) *filecopy()*
|
| 3207 |
-
Copy the file pointed to by the name {from} to {to}.
|
| 3208 |
result is a Number, which is |TRUE| if the file was copied
|
| 3209 |
successfully, and |FALSE| when it failed.
|
| 3210 |
If a file with name {to} already exists, it will fail.
|
|
@@ -3265,7 +3269,7 @@ filter({expr1}, {expr2}) *filter()*
|
|
| 3265 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 3266 |
of the current item and for a |List| |v:key| has the index of
|
| 3267 |
the current item. For a |Blob| |v:key| has the index of the
|
| 3268 |
-
current byte.
|
| 3269 |
current character.
|
| 3270 |
Examples: >
|
| 3271 |
call filter(mylist, 'v:val !~ "OLD"')
|
|
@@ -3307,8 +3311,8 @@ filter({expr1}, {expr2}) *filter()*
|
|
| 3307 |
or a new |Blob| or |String|.
|
| 3308 |
When an error is encountered while evaluating {expr2} no
|
| 3309 |
further items in {expr1} are processed.
|
| 3310 |
-
When {expr2} is a Funcref errors inside a function are
|
| 3311 |
-
unless it was defined with the "abort" flag.
|
| 3312 |
|
| 3313 |
Can also be used as a |method|: >
|
| 3314 |
mylist->filter(expr2)
|
|
@@ -3588,7 +3592,7 @@ foldtextresult({lnum}) *foldtextresult()*
|
|
| 3588 |
foreach({expr1}, {expr2}) *foreach()* *E1525*
|
| 3589 |
{expr1} must be a |List|, |Tuple|, |String|, |Blob| or
|
| 3590 |
|Dictionary|.
|
| 3591 |
-
For each item in {expr1} execute {expr2}.
|
| 3592 |
modified; its values may be, as with |:lockvar| 1. |E741|
|
| 3593 |
See |map()| and |filter()| to modify {expr1}.
|
| 3594 |
|
|
@@ -3598,7 +3602,7 @@ foreach({expr1}, {expr2}) *foreach()* *E1525*
|
|
| 3598 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 3599 |
of the current item and for a |List| or a |Tuple| |v:key| has
|
| 3600 |
the index of the current item. For a |Blob| |v:key| has the
|
| 3601 |
-
index of the current byte.
|
| 3602 |
index of the current character.
|
| 3603 |
Examples: >
|
| 3604 |
call foreach(mylist, 'used[v:val] = true')
|
|
@@ -3619,8 +3623,8 @@ foreach({expr1}, {expr2}) *foreach()* *E1525*
|
|
| 3619 |
Returns {expr1} in all cases.
|
| 3620 |
When an error is encountered while executing {expr2} no
|
| 3621 |
further items in {expr1} are processed.
|
| 3622 |
-
When {expr2} is a Funcref errors inside a function are
|
| 3623 |
-
unless it was defined with the "abort" flag.
|
| 3624 |
|
| 3625 |
Can also be used as a |method|: >
|
| 3626 |
mylist->foreach(expr2)
|
|
@@ -3672,7 +3676,7 @@ funcref({name} [, {arglist}] [, {dict}]) *funcref()*
|
|
| 3672 |
It only works for an autoloaded function if it has already
|
| 3673 |
been loaded (to avoid mistakenly loading the autoload script
|
| 3674 |
when only intending to use the function name, use |function()|
|
| 3675 |
-
instead).
|
| 3676 |
Returns 0 on error.
|
| 3677 |
|
| 3678 |
Can also be used as a |method|: >
|
|
@@ -3688,7 +3692,7 @@ function({name} [, {arglist}] [, {dict}])
|
|
| 3688 |
|
| 3689 |
{name} can also be a Funcref or a partial. When it is a
|
| 3690 |
partial the dict stored in it will be used and the {dict}
|
| 3691 |
-
argument is not allowed.
|
| 3692 |
let FuncWithArg = function(dict.Func, [arg])
|
| 3693 |
let Broken = function(dict.Func, [arg], dict)
|
| 3694 |
<
|
|
@@ -3697,8 +3701,8 @@ function({name} [, {arglist}] [, {dict}])
|
|
| 3697 |
same function.
|
| 3698 |
|
| 3699 |
When {arglist} or {dict} is present this creates a partial.
|
| 3700 |
-
That means the argument list and/or the dictionary is stored
|
| 3701 |
-
the Funcref and will be used when the Funcref is called.
|
| 3702 |
|
| 3703 |
The arguments are passed to the function in front of other
|
| 3704 |
arguments, but after any argument from |method|. Example: >
|
|
@@ -3732,7 +3736,7 @@ function({name} [, {arglist}] [, {dict}])
|
|
| 3732 |
call Callback('one', 'two', 'name')
|
| 3733 |
|
| 3734 |
< The Dictionary is only useful when calling a "dict" function.
|
| 3735 |
-
In that case the {dict} is passed in as "self".
|
| 3736 |
function Callback() dict
|
| 3737 |
echo "called for " .. self.name
|
| 3738 |
endfunction
|
|
@@ -4004,12 +4008,14 @@ getcellpixels() *getcellpixels()*
|
|
| 4004 |
Returns a |List| of terminal cell pixel size.
|
| 4005 |
List format is [xpixel, ypixel].
|
| 4006 |
|
| 4007 |
-
Only works on Unix (terminal and gVim) and Windows (gVim
|
|
|
|
| 4008 |
Returns [] on other systems or on failure.
|
| 4009 |
-
Note that there could be variations across different
|
|
|
|
| 4010 |
On macOS, system Terminal.app returns sizes in points (before
|
| 4011 |
-
Retina scaling), whereas third-party terminals return raw
|
| 4012 |
-
sizes (post Retina scaling).
|
| 4013 |
|
| 4014 |
Return type: list<any>
|
| 4015 |
|
|
@@ -4024,8 +4030,8 @@ getcellwidths() *getcellwidths()*
|
|
| 4024 |
|
| 4025 |
|
| 4026 |
getchangelist([{buf}]) *getchangelist()*
|
| 4027 |
-
Returns the |changelist| for the buffer {buf}.
|
| 4028 |
-
of {buf}, see |bufname()| above.
|
| 4029 |
exist, an empty list is returned.
|
| 4030 |
|
| 4031 |
The returned list contains two entries: a list with the change
|
|
@@ -4036,7 +4042,7 @@ getchangelist([{buf}]) *getchangelist()*
|
|
| 4036 |
coladd column offset for 'virtualedit'
|
| 4037 |
lnum line number
|
| 4038 |
If buffer {buf} is the current buffer, then the current
|
| 4039 |
-
position refers to the position in the list.
|
| 4040 |
buffers, it is set to the length of the list.
|
| 4041 |
|
| 4042 |
Can also be used as a |method|: >
|
|
@@ -4143,7 +4149,7 @@ getchar([{expr} [, {opts}]]) *getchar()*
|
|
| 4143 |
:endfunction
|
| 4144 |
<
|
| 4145 |
You may also receive synthetic characters, such as
|
| 4146 |
-
|<CursorHold>|.
|
| 4147 |
another character: >
|
| 4148 |
:function GetKey()
|
| 4149 |
: let c = getchar()
|
|
@@ -4176,7 +4182,7 @@ getcharmod() *getcharmod()*
|
|
| 4176 |
|
| 4177 |
|
| 4178 |
getcharpos({expr}) *getcharpos()*
|
| 4179 |
-
Get the position for String {expr}.
|
| 4180 |
column number in the returned List is a character index
|
| 4181 |
instead of a byte index.
|
| 4182 |
If |getpos()| returns a very large column number, equal to
|
|
@@ -4300,7 +4306,7 @@ getcmdscreenpos() *getcmdscreenpos()*
|
|
| 4300 |
|
| 4301 |
|
| 4302 |
getcmdtype() *getcmdtype()*
|
| 4303 |
-
Return the current command-line type.
|
| 4304 |
are:
|
| 4305 |
: normal Ex command
|
| 4306 |
> debug mode command |debug-mode|
|
|
@@ -4318,15 +4324,15 @@ getcmdtype() *getcmdtype()*
|
|
| 4318 |
|
| 4319 |
|
| 4320 |
getcmdwintype() *getcmdwintype()*
|
| 4321 |
-
Return the current |command-line-window| type.
|
| 4322 |
-
values are the same as |getcmdtype()|.
|
| 4323 |
when not in the command-line window.
|
| 4324 |
|
| 4325 |
Return type: |String|
|
| 4326 |
|
| 4327 |
|
| 4328 |
getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
| 4329 |
-
Return a list of command-line completion matches.
|
| 4330 |
{type} argument specifies what for. The following completion
|
| 4331 |
types are supported:
|
| 4332 |
|
|
@@ -4383,10 +4389,10 @@ getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
|
| 4383 |
|
| 4384 |
If the optional {filtered} flag is set to 1, then 'wildignore'
|
| 4385 |
is applied to filter the results. Otherwise all the matches
|
| 4386 |
-
are returned.
|
| 4387 |
|
| 4388 |
If the 'wildoptions' option contains 'fuzzy', then fuzzy
|
| 4389 |
-
matching is used to get the completion matches.
|
| 4390 |
regular expression matching is used. Thus this function
|
| 4391 |
follows the user preference, what happens on the command line.
|
| 4392 |
If you do not want this you can make 'wildoptions' empty
|
|
@@ -4423,8 +4429,8 @@ getcurpos([{winid}])
|
|
| 4423 |
cursor vertically. After |$| command it will be a very large
|
| 4424 |
number equal to |v:maxcol|. Also see |getcursorcharpos()| and
|
| 4425 |
|getpos()|.
|
| 4426 |
-
The first "bufnum" item is always zero.
|
| 4427 |
-
the cursor is returned in 'col'.
|
| 4428 |
position, use |getcursorcharpos()|.
|
| 4429 |
|
| 4430 |
The optional {winid} argument can specify the window. It can
|
|
@@ -4472,7 +4478,7 @@ getcwd([{winnr} [, {tabnr}]]) *getcwd()*
|
|
| 4472 |
directory. See also |haslocaldir()|.
|
| 4473 |
|
| 4474 |
With {winnr} and {tabnr} return the local current directory of
|
| 4475 |
-
the window in the specified tab page.
|
| 4476 |
the working directory of the tabpage.
|
| 4477 |
If {winnr} is zero use the current window, if {tabnr} is zero
|
| 4478 |
use the current tabpage.
|
|
@@ -4679,19 +4685,19 @@ getloclist({nr} [, {what}]) *getloclist()*
|
|
| 4679 |
|
| 4680 |
For a location list window, the displayed location list is
|
| 4681 |
returned. For an invalid window number {nr}, an empty list is
|
| 4682 |
-
returned.
|
| 4683 |
|
| 4684 |
If the optional {what} dictionary argument is supplied, then
|
| 4685 |
-
returns the items listed in {what} as a dictionary.
|
| 4686 |
|getqflist()| for the supported items in {what}.
|
| 4687 |
|
| 4688 |
In addition to the items supported by |getqflist()| in {what},
|
| 4689 |
the following item is supported by |getloclist()|:
|
| 4690 |
|
| 4691 |
filewinid id of the window used to display files
|
| 4692 |
-
from the location list.
|
| 4693 |
applicable only when called from a
|
| 4694 |
-
location list window.
|
| 4695 |
|location-list-file-window| for more
|
| 4696 |
details.
|
| 4697 |
|
|
@@ -4852,7 +4858,7 @@ getpos({expr}) *getpos()*
|
|
| 4852 |
|
| 4853 |
For getting the cursor position see |getcurpos()|.
|
| 4854 |
The column number in the returned List is the byte position
|
| 4855 |
-
within the line.
|
| 4856 |
use |getcharpos()|.
|
| 4857 |
|
| 4858 |
Note that for '< and '> Visual mode matters: when it is "V"
|
|
@@ -4898,7 +4904,7 @@ getqflist([{what}]) *getqflist()*
|
|
| 4898 |
any type.
|
| 4899 |
|
| 4900 |
When there is no error list or it's empty, an empty list is
|
| 4901 |
-
returned.
|
| 4902 |
number are returned with "bufnr" set to zero (Note: some
|
| 4903 |
functions accept buffer number zero for the alternate buffer,
|
| 4904 |
you may need to explicitly check for zero).
|
|
@@ -4911,12 +4917,12 @@ getqflist([{what}]) *getqflist()*
|
|
| 4911 |
:endfor
|
| 4912 |
<
|
| 4913 |
If the optional {what} dictionary argument is supplied, then
|
| 4914 |
-
returns only the items listed in {what} as a dictionary.
|
| 4915 |
following string items are supported in {what}:
|
| 4916 |
changedtick get the total number of changes made
|
| 4917 |
to the list |quickfix-changedtick|
|
| 4918 |
context get the |quickfix-context|
|
| 4919 |
-
efm errorformat to use when parsing "lines".
|
| 4920 |
not present, then the 'errorformat' option
|
| 4921 |
value is used.
|
| 4922 |
id get information for the quickfix list with
|
|
@@ -4930,24 +4936,24 @@ getqflist([{what}]) *getqflist()*
|
|
| 4930 |
lines parse a list of lines using 'efm' and return
|
| 4931 |
the resulting entries. Only a |List| type is
|
| 4932 |
accepted. The current quickfix list is not
|
| 4933 |
-
modified.
|
| 4934 |
nr get information for this quickfix list; zero
|
| 4935 |
means the current quickfix list and "$" means
|
| 4936 |
the last quickfix list
|
| 4937 |
qfbufnr number of the buffer displayed in the quickfix
|
| 4938 |
-
window.
|
| 4939 |
-
not present.
|
| 4940 |
size number of entries in the quickfix list
|
| 4941 |
title get the list title |quickfix-title|
|
| 4942 |
winid get the quickfix |window-ID|
|
| 4943 |
all all of the above quickfix properties
|
| 4944 |
-
Non-string items in {what} are ignored.
|
| 4945 |
particular item, set it to zero.
|
| 4946 |
If "nr" is not present then the current quickfix list is used.
|
| 4947 |
If both "nr" and a non-zero "id" are specified, then the list
|
| 4948 |
specified by "id" is used.
|
| 4949 |
To get the number of lists in the quickfix stack, set "nr" to
|
| 4950 |
-
"$" in {what}.
|
| 4951 |
contains the quickfix stack size.
|
| 4952 |
When "lines" is specified, all the other items except "efm"
|
| 4953 |
are ignored. The returned dictionary contains the entry
|
|
@@ -4956,22 +4962,23 @@ getqflist([{what}]) *getqflist()*
|
|
| 4956 |
The returned dictionary contains the following entries:
|
| 4957 |
changedtick total number of changes made to the
|
| 4958 |
list |quickfix-changedtick|
|
| 4959 |
-
context quickfix list context.
|
| 4960 |
If not present, set to "".
|
| 4961 |
-
id quickfix list ID |quickfix-ID|.
|
| 4962 |
present, set to 0.
|
| 4963 |
-
idx index of the quickfix entry in the list.
|
| 4964 |
-
present, set to 0.
|
| 4965 |
-
items quickfix list entries.
|
| 4966 |
an empty list.
|
| 4967 |
-
nr quickfix list number.
|
|
|
|
| 4968 |
qfbufnr number of the buffer displayed in the quickfix
|
| 4969 |
-
window.
|
| 4970 |
-
size number of entries in the quickfix list.
|
| 4971 |
-
present, set to 0.
|
| 4972 |
-
title quickfix list title text.
|
| 4973 |
to "".
|
| 4974 |
-
winid quickfix |window-ID|.
|
| 4975 |
|
| 4976 |
Examples (See also |getqflist-examples|): >
|
| 4977 |
:echo getqflist({'all': 1})
|
|
@@ -4996,7 +5003,7 @@ getreg([{regname} [, 1 [, {list}]]]) *getreg()*
|
|
| 4996 |
argument is ignored, thus you can always give it.
|
| 4997 |
|
| 4998 |
If {list} is present and |TRUE|, the result type is changed
|
| 4999 |
-
to |List|.
|
| 5000 |
about zero bytes possibly present inside register: without
|
| 5001 |
third argument both NLs and zero bytes are represented as NLs
|
| 5002 |
(see |NL-used-for-Nul|).
|
|
@@ -5170,7 +5177,7 @@ getscriptinfo([{opts}]) *getscriptinfo()*
|
|
| 5170 |
|
| 5171 |
The optional Dict argument {opts} supports the following
|
| 5172 |
optional items:
|
| 5173 |
-
name Script name match pattern.
|
| 5174 |
and "sid" is not specified, information about
|
| 5175 |
scripts with a name that match the pattern
|
| 5176 |
"name" are returned.
|
|
@@ -5224,7 +5231,7 @@ getstacktrace() *getstacktrace()*
|
|
| 5224 |
|
| 5225 |
gettabinfo([{tabnr}]) *gettabinfo()*
|
| 5226 |
If {tabnr} is not specified, then information about all the
|
| 5227 |
-
tab pages is returned as a |List|.
|
| 5228 |
|Dictionary|. Otherwise, {tabnr} specifies the tab page
|
| 5229 |
number and information about that one is returned. If the tab
|
| 5230 |
page does not exist an empty List is returned.
|
|
@@ -5290,16 +5297,17 @@ gettabwinvar({tabnr}, {winnr}, {varname} [, {def}]) *gettabwinvar()*
|
|
| 5290 |
|
| 5291 |
|
| 5292 |
gettagstack([{winnr}]) *gettagstack()*
|
| 5293 |
-
The result is a Dict, which is the tag stack of window
|
|
|
|
| 5294 |
{winnr} can be the window number or the |window-ID|.
|
| 5295 |
When {winnr} is not specified, the current window is used.
|
| 5296 |
When window {winnr} doesn't exist, an empty Dict is returned.
|
| 5297 |
|
| 5298 |
The returned dictionary contains the following entries:
|
| 5299 |
-
curidx Current index in the stack.
|
| 5300 |
top of the stack, set to (length + 1).
|
| 5301 |
Index of bottom of the stack is 1.
|
| 5302 |
-
items List of items in the stack.
|
| 5303 |
is a dictionary containing the
|
| 5304 |
entries described below.
|
| 5305 |
length Number of entries in the stack.
|
|
@@ -5310,9 +5318,9 @@ gettagstack([{winnr}]) *gettagstack()*
|
|
| 5310 |
from cursor position before the tag jump.
|
| 5311 |
See |getpos()| for the format of the
|
| 5312 |
returned list.
|
| 5313 |
-
matchnr current matching tag number.
|
| 5314 |
-
multiple matching tags are found
|
| 5315 |
-
name.
|
| 5316 |
tagname name of the tag
|
| 5317 |
|
| 5318 |
See |tagstack| for more information about the tag stack.
|
|
@@ -5417,7 +5425,7 @@ getwinpos([{timeout}]) *getwinpos()*
|
|
| 5417 |
|
| 5418 |
getwinposx() *getwinposx()*
|
| 5419 |
The result is a Number, which is the X coordinate in pixels of
|
| 5420 |
-
the left hand side of the GUI Vim window.
|
| 5421 |
xterm (uses a timeout of 100 msec).
|
| 5422 |
The result will be -1 if the information is not available
|
| 5423 |
(e.g. on the Wayland backend).
|
|
@@ -5460,7 +5468,7 @@ glob({expr} [, {nosuf} [, {list} [, {alllinks}]]]) *glob()*
|
|
| 5460 |
'wildignorecase' always applies.
|
| 5461 |
|
| 5462 |
When {list} is present and it is |TRUE| the result is a |List|
|
| 5463 |
-
with all matching files.
|
| 5464 |
you also get filenames containing newlines correctly.
|
| 5465 |
Otherwise the result is a String and when there are several
|
| 5466 |
matches, they are separated by <NL> characters.
|
|
@@ -5530,10 +5538,10 @@ globpath({path}, {expr} [, {nosuf} [, {list} [, {alllinks}]]])
|
|
| 5530 |
'suffixes' affect the ordering of matches.
|
| 5531 |
|
| 5532 |
When {list} is present and it is |TRUE| the result is a |List|
|
| 5533 |
-
with all matching files.
|
| 5534 |
-
also get filenames containing newlines correctly.
|
| 5535 |
-
the result is a String and when there are several
|
| 5536 |
-
they are separated by <NL> characters. Example: >
|
| 5537 |
:echo globpath(&rtp, "syntax/c.vim", 0, 1)
|
| 5538 |
<
|
| 5539 |
{alllinks} is used as with |glob()|.
|
|
@@ -5804,24 +5812,24 @@ hlget([{name} [, {resolve}]]) *hlget()*
|
|
| 5804 |
cleared boolean flag, set to v:true if the highlight
|
| 5805 |
group attributes are cleared or not yet
|
| 5806 |
specified. See |highlight-clear|.
|
| 5807 |
-
cterm cterm attributes.
|
| 5808 |
ctermbg cterm background color.
|
| 5809 |
See |highlight-ctermbg|.
|
| 5810 |
ctermfg cterm foreground color.
|
| 5811 |
See |highlight-ctermfg|.
|
| 5812 |
ctermul cterm underline color. See |highlight-ctermul|.
|
| 5813 |
default boolean flag, set to v:true if the highlight
|
| 5814 |
-
group link is a default link.
|
| 5815 |
|highlight-default|.
|
| 5816 |
font highlight group font. See |highlight-font|.
|
| 5817 |
-
gui gui attributes.
|
| 5818 |
guibg gui background color. See |highlight-guibg|.
|
| 5819 |
guifg gui foreground color. See |highlight-guifg|.
|
| 5820 |
guisp gui special color. See |highlight-guisp|.
|
| 5821 |
id highlight group ID.
|
| 5822 |
linksto linked highlight group name.
|
| 5823 |
See |:highlight-link|.
|
| 5824 |
-
name highlight group name.
|
| 5825 |
start start terminal keycode. See |highlight-start|.
|
| 5826 |
stop stop terminal keycode. See |highlight-stop|.
|
| 5827 |
term term attributes. See |highlight-term|.
|
|
@@ -5845,7 +5853,7 @@ hlget([{name} [, {resolve}]]) *hlget()*
|
|
| 5845 |
hlset({list}) *hlset()*
|
| 5846 |
Creates or modifies the attributes of a List of highlight
|
| 5847 |
groups. Each item in {list} is a dictionary containing the
|
| 5848 |
-
attributes of a highlight group.
|
| 5849 |
supported items in this dictionary.
|
| 5850 |
|
| 5851 |
In addition to the items described in |hlget()|, the following
|
|
@@ -5947,16 +5955,16 @@ iconv({string}, {from}, {to}) *iconv()*
|
|
| 5947 |
|
| 5948 |
id({item}) *id()*
|
| 5949 |
The result is a unique String associated with the {item} and
|
| 5950 |
-
not with the {item}'s contents.
|
| 5951 |
-
{item} exists and is referenced.
|
| 5952 |
-
instance of vim that produces the result.
|
| 5953 |
that `id({item})` does not change if the contents of {item}
|
| 5954 |
-
changes.
|
| 5955 |
dictionary, rather than one based on equals.
|
| 5956 |
|
| 5957 |
This operation does not reference {item} and there is no
|
| 5958 |
-
function to convert the `id` to the {item}.
|
| 5959 |
-
have a map of `id` to {item}.
|
| 5960 |
var referenceMap: dict<any>
|
| 5961 |
var id = item->id()
|
| 5962 |
referenceMap[id] = item
|
|
@@ -5964,7 +5972,7 @@ id({item}) *id()*
|
|
| 5964 |
way to get the {item} from the `id`.
|
| 5965 |
|
| 5966 |
{item} may be a List, Tuple, Dictionary, Object, Job, Channel
|
| 5967 |
-
or Blob.
|
| 5968 |
value, then an empty String is returned.
|
| 5969 |
|
| 5970 |
Can also be used as a |method|: >
|
|
@@ -6160,7 +6168,8 @@ inputrestore() *inputrestore()*
|
|
| 6160 |
Restore typeahead that was saved with a previous |inputsave()|.
|
| 6161 |
Should be called the same number of times inputsave() is
|
| 6162 |
called. Calling it more often is harmless though.
|
| 6163 |
-
Returns TRUE when there is nothing to restore, FALSE
|
|
|
|
| 6164 |
|
| 6165 |
Return type: |Number|
|
| 6166 |
|
|
@@ -6259,10 +6268,11 @@ invert({expr}) *invert()*
|
|
| 6259 |
isabsolutepath({path}) *isabsolutepath()*
|
| 6260 |
The result is a Number, which is |TRUE| when {path} is an
|
| 6261 |
absolute path.
|
| 6262 |
-
On Unix, a path is considered absolute when it starts with
|
| 6263 |
-
|
| 6264 |
-
|
| 6265 |
-
|
|
|
|
| 6266 |
Example: >
|
| 6267 |
echo isabsolutepath('/usr/share/') " 1
|
| 6268 |
echo isabsolutepath('./foobar') " 0
|
|
@@ -6408,7 +6418,7 @@ js_encode({expr}) *js_encode()*
|
|
| 6408 |
[1,,{one:1},,] ~
|
| 6409 |
While json_encode() would produce:
|
| 6410 |
[1,null,{"one":1},null] ~
|
| 6411 |
-
This encoding is valid for JavaScript.
|
| 6412 |
than JSON, especially when using an array with optional items.
|
| 6413 |
|
| 6414 |
Can also be used as a |method|: >
|
|
@@ -6427,7 +6437,7 @@ json_decode({string}) *json_decode()* *E491*
|
|
| 6427 |
- Integer keys are accepted in objects, e.g. {1:2} is the
|
| 6428 |
same as {"1":2}.
|
| 6429 |
- More floating point numbers are recognized, e.g. "1." for
|
| 6430 |
-
"1.0", or "001.2" for "1.2".
|
| 6431 |
"Infinity", "-Infinity" and "NaN" (capitalization ignored)
|
| 6432 |
are accepted.
|
| 6433 |
- Leading zeroes in integer numbers are ignored, e.g. "012"
|
|
@@ -6690,7 +6700,8 @@ list2str({list} [, {utf8}]) *list2str()*
|
|
| 6690 |
join(map(list, {nr, val -> nr2char(val)}), '')
|
| 6691 |
< |str2list()| does the opposite.
|
| 6692 |
|
| 6693 |
-
When {utf8} is omitted or zero, the current 'encoding' is
|
|
|
|
| 6694 |
When {utf8} is TRUE, always return UTF-8 characters.
|
| 6695 |
With UTF-8 composing characters work as expected: >
|
| 6696 |
list2str([97, 769]) returns "á"
|
|
@@ -6725,7 +6736,7 @@ list2tuple({list}) *list2tuple()*
|
|
| 6725 |
listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
|
| 6726 |
Add a callback function that will be invoked when changes have
|
| 6727 |
been made to buffer {buf}.
|
| 6728 |
-
{buf} refers to a buffer name or number.
|
| 6729 |
values, see |bufname()|. When {buf} is omitted the current
|
| 6730 |
buffer is used.
|
| 6731 |
Returns a unique ID that can be passed to |listener_remove()|.
|
|
@@ -6791,16 +6802,16 @@ listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
|
|
| 6791 |
|
| 6792 |
Because of the third trigger reason for triggering a callback
|
| 6793 |
listed above, the line numbers passed to the callback are not
|
| 6794 |
-
guaranteed to be valid.
|
| 6795 |
{unbuffered} |TRUE|.
|
| 6796 |
|
| 6797 |
When {unbuffered} is |TRUE| the {callback} is invoked for every
|
| 6798 |
-
single change.
|
| 6799 |
-
and the "start", "end" and "added" values in the
|
| 6800 |
-
the same as the corresponding callback
|
| 6801 |
-
numbers are valid when the callback is
|
| 6802 |
-
changes may make them invalid, thus keeping
|
| 6803 |
-
might not work.
|
| 6804 |
|
| 6805 |
The {callback} is invoked with the text locked, see
|
| 6806 |
|textlock|. If you do need to make changes to the buffer, use
|
|
@@ -6827,7 +6838,7 @@ listener_flush([{buf}]) *listener_flush()*
|
|
| 6827 |
Invoke listener callbacks for buffer {buf}. If there are no
|
| 6828 |
pending changes then no callbacks are invoked.
|
| 6829 |
|
| 6830 |
-
{buf} refers to a buffer name or number.
|
| 6831 |
values, see |bufname()|. When {buf} is omitted the current
|
| 6832 |
buffer is used.
|
| 6833 |
|
|
@@ -6890,7 +6901,7 @@ log10({expr}) *log10()*
|
|
| 6890 |
|
| 6891 |
luaeval({expr} [, {expr}]) *luaeval()*
|
| 6892 |
Evaluate Lua expression {expr} and return its result converted
|
| 6893 |
-
to Vim data structures.
|
| 6894 |
argument accessible as _A inside first {expr}.
|
| 6895 |
Strings are returned as they are.
|
| 6896 |
Boolean objects are converted to numbers.
|
|
@@ -6927,7 +6938,7 @@ map({expr1}, {expr2}) *map()*
|
|
| 6927 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 6928 |
of the current item and for a |List| |v:key| has the index of
|
| 6929 |
the current item. For a |Blob| |v:key| has the index of the
|
| 6930 |
-
current byte.
|
| 6931 |
current character.
|
| 6932 |
Example: >
|
| 6933 |
:call map(mylist, '"> " .. v:val .. " <"')
|
|
@@ -6945,7 +6956,7 @@ map({expr1}, {expr2}) *map()*
|
|
| 6945 |
accepts one argument, but with a Vim9 lambda you get "E1106:
|
| 6946 |
One argument too many", the number of arguments must match.
|
| 6947 |
|
| 6948 |
-
The function must return the new value of the item.
|
| 6949 |
that changes each value by "key-value": >
|
| 6950 |
func KeyValue(key, val)
|
| 6951 |
return a:key .. '-' .. a:val
|
|
@@ -6966,8 +6977,8 @@ map({expr1}, {expr2}) *map()*
|
|
| 6966 |
or a new |Blob| or |String|.
|
| 6967 |
When an error is encountered while evaluating {expr2} no
|
| 6968 |
further items in {expr1} are processed.
|
| 6969 |
-
When {expr2} is a Funcref errors inside a function are
|
| 6970 |
-
unless it was defined with the "abort" flag.
|
| 6971 |
|
| 6972 |
Can also be used as a |method|: >
|
| 6973 |
mylist->map(expr2)
|
|
@@ -6980,8 +6991,8 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
|
| 6980 |
When {dict} is omitted or zero: Return the rhs of mapping
|
| 6981 |
{name} in mode {mode}. The returned String has special
|
| 6982 |
characters translated like in the output of the ":map" command
|
| 6983 |
-
listing.
|
| 6984 |
-
below.
|
| 6985 |
|
| 6986 |
When there is no mapping for {name}, an empty String is
|
| 6987 |
returned if {dict} is FALSE, otherwise returns an empty Dict.
|
|
@@ -7020,7 +7031,7 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
|
| 7020 |
"script" 1 if mapping was defined with <script>.
|
| 7021 |
"expr" 1 for an expression mapping (|:map-<expr>|).
|
| 7022 |
"buffer" 1 for a buffer local mapping (|:map-local|).
|
| 7023 |
-
"mode" Modes for which the mapping is defined.
|
| 7024 |
addition to the modes mentioned above, these
|
| 7025 |
characters will be used:
|
| 7026 |
" " Normal, Visual and Operator-pending
|
|
@@ -7036,7 +7047,7 @@ maparg({name} [, {mode} [, {abbr} [, {dict}]]]) *maparg()*
|
|
| 7036 |
"abbr" True if this is an abbreviation |abbreviations|.
|
| 7037 |
"mode_bits" Vim's internal binary representation of "mode".
|
| 7038 |
|mapset()| ignores this; only "mode" is used.
|
| 7039 |
-
See |maplist()| for usage examples.
|
| 7040 |
are from src/vim.h and may change in the future.
|
| 7041 |
|
| 7042 |
The dictionary can be used to restore a mapping with
|
|
@@ -7104,9 +7115,9 @@ maplist([{abbr}]) *maplist()*
|
|
| 7104 |
echo maplist()->filter(
|
| 7105 |
(_, m) => match(m.rhs, 'MultiMatch') >= 0)
|
| 7106 |
< It can be tricky to find mappings for particular |:map-modes|.
|
| 7107 |
-
|mapping-dict|'s "mode_bits" can simplify this.
|
| 7108 |
the mode_bits for Normal, Insert or Command-line modes are
|
| 7109 |
-
0x19.
|
| 7110 |
can do: >
|
| 7111 |
vim9script
|
| 7112 |
var saved_maps = []
|
|
@@ -7118,7 +7129,7 @@ maplist([{abbr}]) *maplist()*
|
|
| 7118 |
echo saved_maps->mapnew((_, m) => m.lhs)
|
| 7119 |
< The values of the mode_bits are defined in Vim's src/vim.h
|
| 7120 |
file and they can be discovered at runtime using
|
| 7121 |
-
|:map-commands| and "maplist()".
|
| 7122 |
vim9script
|
| 7123 |
omap xyzzy <Nop>
|
| 7124 |
var op_bit = maplist()->filter(
|
|
@@ -7144,8 +7155,9 @@ mapset({dict})
|
|
| 7144 |
Restore a mapping from a dictionary, possibly returned by
|
| 7145 |
|maparg()| or |maplist()|. A buffer mapping, when dict.buffer
|
| 7146 |
is true, is set on the current buffer; it is up to the caller
|
| 7147 |
-
to ensure that the intended buffer is the current buffer.
|
| 7148 |
-
feature allows copying mappings from one buffer to
|
|
|
|
| 7149 |
The dict.mode value may restore a single mapping that covers
|
| 7150 |
more than one mode, like with mode values of '!', ' ', 'nox',
|
| 7151 |
or 'v'. *E1276*
|
|
@@ -7284,9 +7296,9 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
|
| 7284 |
automatically chooses a free ID, which is at least 1000.
|
| 7285 |
|
| 7286 |
The optional {dict} argument allows for further custom
|
| 7287 |
-
values.
|
| 7288 |
conceal character that will be shown for |hl-Conceal|
|
| 7289 |
-
highlighted matches.
|
| 7290 |
|
| 7291 |
conceal Special character to show instead of the
|
| 7292 |
match (only for |hl-Conceal| highlighted
|
|
@@ -7318,9 +7330,9 @@ matchadd({group}, {pattern} [, {priority} [, {id} [, {dict}]]])
|
|
| 7318 |
*matchaddpos()*
|
| 7319 |
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
| 7320 |
Same as |matchadd()|, but requires a list of positions {pos}
|
| 7321 |
-
instead of a pattern.
|
| 7322 |
because it does not handle regular expressions and it sets
|
| 7323 |
-
buffer line boundaries to redraw screen.
|
| 7324 |
used when fast match additions and deletions are required, for
|
| 7325 |
example to highlight matching parentheses.
|
| 7326 |
|
|
@@ -7328,14 +7340,14 @@ matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
|
| 7328 |
these:
|
| 7329 |
- A number. This whole line will be highlighted. The first
|
| 7330 |
line has number 1.
|
| 7331 |
-
- A list with one number, e.g., [23].
|
| 7332 |
-
number will be highlighted.
|
| 7333 |
-
- A list with two numbers, e.g., [23, 11].
|
| 7334 |
-
the line number, the second one is the column number
|
| 7335 |
-
column is 1, the value must correspond to the byte
|
| 7336 |
-
|col()| would return). The character at this
|
| 7337 |
-
be highlighted.
|
| 7338 |
-
- A list with three numbers, e.g., [23, 11, 3].
|
| 7339 |
the third number gives the length of the highlight in bytes.
|
| 7340 |
|
| 7341 |
Returns -1 on error.
|
|
@@ -7365,7 +7377,7 @@ matcharg({nr}) *matcharg()*
|
|
| 7365 |
When there is no match item set returns ['', ''].
|
| 7366 |
This is useful to save and restore a |:match|.
|
| 7367 |
Highlighting matches using the |:match| commands are limited
|
| 7368 |
-
to three matches.
|
| 7369 |
|
| 7370 |
Can also be used as a |method|: >
|
| 7371 |
GetMatch()->matcharg()
|
|
@@ -7389,7 +7401,7 @@ matchbufline({buf}, {pat}, {lnum}, {end}, [, {dict}])
|
|
| 7389 |
text matched string
|
| 7390 |
Note that there can be multiple matches in a single line.
|
| 7391 |
|
| 7392 |
-
This function works only for loaded buffers.
|
| 7393 |
|bufload()| if needed.
|
| 7394 |
|
| 7395 |
See |match-pattern| for information about the effect of some
|
|
@@ -7466,7 +7478,7 @@ matchend({expr}, {pat} [, {start} [, {count}]]) *matchend()*
|
|
| 7466 |
|
| 7467 |
matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
| 7468 |
If {list} is a list of strings, then returns a |List| with all
|
| 7469 |
-
the strings in {list} that fuzzy match {str}.
|
| 7470 |
the returned list are sorted based on the matching score.
|
| 7471 |
|
| 7472 |
The optional {dict} argument always supports the following
|
|
@@ -7480,7 +7492,7 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
|
| 7480 |
If {list} is a list of dictionaries, then the optional {dict}
|
| 7481 |
argument supports the following additional items:
|
| 7482 |
key Key of the item which is fuzzy matched against
|
| 7483 |
-
{str}.
|
| 7484 |
string.
|
| 7485 |
text_cb |Funcref| that will be called for every item
|
| 7486 |
in {list} to get the text for fuzzy matching.
|
|
@@ -7496,7 +7508,7 @@ matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
|
| 7496 |
then the list of strings that have all the words is returned.
|
| 7497 |
|
| 7498 |
If there are no matching strings or there is an error, then an
|
| 7499 |
-
empty list is returned.
|
| 7500 |
256, then returns an empty list.
|
| 7501 |
|
| 7502 |
When {limit} is given, matchfuzzy() will find up to this
|
|
@@ -7659,7 +7671,7 @@ matchstrpos({expr}, {pat} [, {start} [, {count}]]) *matchstrpos()*
|
|
| 7659 |
|
| 7660 |
|
| 7661 |
max({expr}) *max()*
|
| 7662 |
-
Return the maximum value of all items in {expr}.
|
| 7663 |
echo max([apples, pears, oranges])
|
| 7664 |
|
| 7665 |
< {expr} can be a |List|, a |Tuple| or a |Dictionary|. For a
|
|
@@ -7677,8 +7689,8 @@ max({expr}) *max()*
|
|
| 7677 |
|
| 7678 |
menu_info({name} [, {mode}]) *menu_info()*
|
| 7679 |
Return information about the specified menu {name} in
|
| 7680 |
-
mode {mode}.
|
| 7681 |
-
shortcut character ('&').
|
| 7682 |
menu names are returned.
|
| 7683 |
|
| 7684 |
{mode} can be one of these strings:
|
|
@@ -7702,7 +7714,7 @@ menu_info({name} [, {mode}]) *menu_info()*
|
|
| 7702 |
icon name of the icon file (for toolbar)
|
| 7703 |
|toolbar-icon|
|
| 7704 |
iconidx index of a built-in icon
|
| 7705 |
-
modes modes for which the menu is defined.
|
| 7706 |
addition to the modes mentioned above, these
|
| 7707 |
characters will be used:
|
| 7708 |
" " Normal, Visual and Operator-pending
|
|
@@ -7710,11 +7722,11 @@ menu_info({name} [, {mode}]) *menu_info()*
|
|
| 7710 |
noremenu v:true if the {rhs} of the menu item is not
|
| 7711 |
remappable else v:false.
|
| 7712 |
priority menu order priority |menu-priority|
|
| 7713 |
-
rhs right-hand-side of the menu item.
|
| 7714 |
-
string has special characters
|
| 7715 |
-
in the output of the ":menu"
|
| 7716 |
-
When the {rhs} of a menu
|
| 7717 |
-
"<Nop>" is returned.
|
| 7718 |
script v:true if script-local remapping of {rhs} is
|
| 7719 |
allowed else v:false. See |:menu-script|.
|
| 7720 |
shortcut shortcut key (character after '&' in
|
|
@@ -7869,8 +7881,8 @@ mode([{expr}]) *mode()*
|
|
| 7869 |
with |remote_expr()| In most other places it always returns
|
| 7870 |
"c" or "n".
|
| 7871 |
Note that in the future more modes and more specific modes may
|
| 7872 |
-
be added.
|
| 7873 |
-
the leading character(s).
|
| 7874 |
Also see |visualmode()|.
|
| 7875 |
|
| 7876 |
Can also be used as a |method|: >
|
|
@@ -7923,7 +7935,7 @@ nextnonblank({lnum}) *nextnonblank()*
|
|
| 7923 |
ngettext({single}, {plural}, {number}[, {domain}) *ngettext()*
|
| 7924 |
Return a string that contains the correct value for a
|
| 7925 |
message based on the rules for plural form(s) in
|
| 7926 |
-
a language.
|
| 7927 |
ngettext("File", "Files", 2) # returns "Files"
|
| 7928 |
<
|
| 7929 |
Can be used as a |method|: >
|
|
@@ -7997,8 +8009,8 @@ pathshorten({path} [, {len}]) *pathshorten()*
|
|
| 7997 |
|
| 7998 |
perleval({expr}) *perleval()*
|
| 7999 |
Evaluate Perl expression {expr} in scalar context and return
|
| 8000 |
-
its result converted to Vim data structures.
|
| 8001 |
-
converted, it is returned as a string Perl representation.
|
| 8002 |
Note: If you want an array or hash, {expr} must return a
|
| 8003 |
reference to it.
|
| 8004 |
Example: >
|
|
@@ -8105,8 +8117,8 @@ printf({fmt}, {expr1} ...) *printf()*
|
|
| 8105 |
% [pos-argument] [flags] [field-width] [.precision] type
|
| 8106 |
|
| 8107 |
pos-argument
|
| 8108 |
-
At most one positional argument specifier.
|
| 8109 |
-
|
| 8110 |
|
| 8111 |
flags
|
| 8112 |
Zero or more of the following flags:
|
|
@@ -8182,7 +8194,7 @@ printf({fmt}, {expr1} ...) *printf()*
|
|
| 8182 |
positional argument specifier, and a '*' is used to indicate
|
| 8183 |
that a number argument is to be used to specify the width or
|
| 8184 |
precision, the argument(s) to be used must also be specified
|
| 8185 |
-
using a {n$} positional argument specifier.
|
| 8186 |
|
| 8187 |
The conversion specifiers and their meanings are:
|
| 8188 |
|
|
@@ -8209,7 +8221,7 @@ printf({fmt}, {expr1} ...) *printf()*
|
|
| 8209 |
The b and B conversion specifiers never take a width
|
| 8210 |
modifier and always assume their argument is a 64 bit
|
| 8211 |
integer.
|
| 8212 |
-
Generally, these modifiers are not useful.
|
| 8213 |
ignored when type is known from the argument.
|
| 8214 |
|
| 8215 |
i alias for d
|
|
@@ -8281,9 +8293,9 @@ printf({fmt}, {expr1} ...) *printf()*
|
|
| 8281 |
*printf-$*
|
| 8282 |
In certain languages, error and informative messages are
|
| 8283 |
more readable when the order of words is different from the
|
| 8284 |
-
corresponding message in English.
|
| 8285 |
having a different word order, positional arguments may be
|
| 8286 |
-
used to indicate this.
|
| 8287 |
|
| 8288 |
#, c-format
|
| 8289 |
msgid "%s returning %s"
|
|
@@ -8302,9 +8314,9 @@ printf({fmt}, {expr1} ...) *printf()*
|
|
| 8302 |
"Bram", "Moolenaar")
|
| 8303 |
< In Belgium, vim's creator's name is: Moolenaar Bram
|
| 8304 |
|
| 8305 |
-
Width (and precision) can be specified using the '*'
|
| 8306 |
-
In this case, you must specify the field width
|
| 8307 |
-
argument list. >
|
| 8308 |
|
| 8309 |
echo printf("%1$*2$.*3$d", 1, 2, 3)
|
| 8310 |
< 001 >
|
|
@@ -8504,8 +8516,8 @@ py3eval({expr} [, {locals}]) *py3eval()*
|
|
| 8504 |
Evaluate Python expression {expr} and return its result
|
| 8505 |
converted to Vim data structures.
|
| 8506 |
If a {locals} |Dictionary| is given, it defines set of local
|
| 8507 |
-
variables available in the expression.
|
| 8508 |
-
names and the values are the variable values.
|
| 8509 |
|List| and |Tuple| values are referenced, and may be updated
|
| 8510 |
by the expression (as if |python-bindeval| was used).
|
| 8511 |
Numbers and strings are returned as they are (strings are
|
|
@@ -8655,8 +8667,8 @@ readdir({directory} [, {expr} [, {dict}]]) *readdir()*
|
|
| 8655 |
readdir(dirname, {n -> n !~ '^\.\|\~$'})
|
| 8656 |
< *E857*
|
| 8657 |
The optional {dict} argument allows for further custom
|
| 8658 |
-
values.
|
| 8659 |
-
should be performed.
|
| 8660 |
|
| 8661 |
sort How to sort the result returned from the system.
|
| 8662 |
Valid values are:
|
|
@@ -8707,9 +8719,9 @@ readdirex({directory} [, {expr} [, {dict}]]) *readdirex()*
|
|
| 8707 |
following items:
|
| 8708 |
group Group name of the entry. (Only on Unix)
|
| 8709 |
name Name of the entry.
|
| 8710 |
-
perm Permissions of the entry.
|
| 8711 |
-
size Size of the entry.
|
| 8712 |
-
time Timestamp of the entry.
|
| 8713 |
type Type of the entry.
|
| 8714 |
On Unix, almost same as |getftype()| except:
|
| 8715 |
Symlink to a dir "linkd"
|
|
@@ -8891,8 +8903,8 @@ reltimestr({time}) *reltimestr()*
|
|
| 8891 |
call MyFunction()
|
| 8892 |
echo reltimestr(reltime(start))
|
| 8893 |
< Note that overhead for the commands will be added to the time.
|
| 8894 |
-
The accuracy depends on the system.
|
| 8895 |
-
greatest accuracy which is nanoseconds on some systems.
|
| 8896 |
Leading spaces are used to make the string align nicely. You
|
| 8897 |
can use split() to remove it. >
|
| 8898 |
echo split(reltimestr(reltime(start)))[0]
|
|
@@ -9132,7 +9144,7 @@ resolve({filename}) *resolve()* *E655*
|
|
| 9132 |
On MS-Windows, when {filename} is a shortcut (a .lnk file),
|
| 9133 |
returns the path the shortcut points to in a simplified form.
|
| 9134 |
When {filename} is a symbolic link or junction point, return
|
| 9135 |
-
the full path to the target.
|
| 9136 |
removed, return {filename}.
|
| 9137 |
On Unix, repeat resolving symbolic links in all path
|
| 9138 |
components of {filename} and return the simplified result.
|
|
@@ -9249,13 +9261,13 @@ screenchars({row}, {col}) *screenchars()*
|
|
| 9249 |
|
| 9250 |
screencol() *screencol()*
|
| 9251 |
The result is a Number, which is the current screen column of
|
| 9252 |
-
the cursor.
|
| 9253 |
This function is mainly used for testing.
|
| 9254 |
|
| 9255 |
Note: Always returns the current screen column, thus if used
|
| 9256 |
in a command (e.g. ":echo screencol()") it will return the
|
| 9257 |
column inside the command line, which is 1 when the command is
|
| 9258 |
-
executed.
|
| 9259 |
the following mappings: >
|
| 9260 |
nnoremap <expr> GG ":echom " .. screencol() .. "\n"
|
| 9261 |
nnoremap <silent> GG :echom screencol()<CR>
|
|
@@ -9341,7 +9353,7 @@ search({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
|
|
| 9341 |
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
|
| 9342 |
|
| 9343 |
If the 's' flag is supplied, the ' mark is set, only if the
|
| 9344 |
-
cursor is moved.
|
| 9345 |
flag.
|
| 9346 |
|
| 9347 |
'ignorecase', 'smartcase' and 'magic' are used.
|
|
@@ -9436,7 +9448,7 @@ searchcount([{options}]) *searchcount()*
|
|
| 9436 |
without the "S" flag in 'shortmess'. This works even if
|
| 9437 |
'shortmess' does contain the "S" flag.
|
| 9438 |
|
| 9439 |
-
This returns a |Dictionary|.
|
| 9440 |
previous pattern was not set and "pattern" was not specified.
|
| 9441 |
|
| 9442 |
key type meaning ~
|
|
@@ -9453,10 +9465,10 @@ searchcount([{options}]) *searchcount()*
|
|
| 9453 |
For {options} see further down.
|
| 9454 |
|
| 9455 |
To get the last search count when |n| or |N| was pressed, call
|
| 9456 |
-
this function with `recompute: 0` .
|
| 9457 |
wrong information because of 'maxsearchcount'.
|
| 9458 |
If the count exceeded 'maxsearchcount', the result must be
|
| 9459 |
-
'maxsearchcount' + 1.
|
| 9460 |
specify `recompute: 1`: >
|
| 9461 |
|
| 9462 |
" result == 'maxsearchcount' + 1 when many matches
|
|
@@ -9519,7 +9531,7 @@ searchcount([{options}]) *searchcount()*
|
|
| 9519 |
" search again
|
| 9520 |
call searchcount()
|
| 9521 |
<
|
| 9522 |
-
{options} must be a |Dictionary|.
|
| 9523 |
key type meaning ~
|
| 9524 |
recompute |Boolean| if |TRUE|, recompute the count
|
| 9525 |
like |n| or |N| was executed.
|
|
@@ -9677,7 +9689,7 @@ searchpair({start}, {middle}, {end} [, {flags} [, {skip}
|
|
| 9677 |
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
|
| 9678 |
[, {stopline} [, {timeout}]]]])
|
| 9679 |
Same as |searchpair()|, but returns a |List| with the line and
|
| 9680 |
-
column position of the match.
|
| 9681 |
is the line number and the second element is the byte index of
|
| 9682 |
the column position of the match. If no match is found,
|
| 9683 |
returns [0, 0]. >
|
|
@@ -9691,9 +9703,9 @@ searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
|
|
| 9691 |
*searchpos()*
|
| 9692 |
searchpos({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
|
| 9693 |
Same as |search()|, but returns a |List| with the line and
|
| 9694 |
-
column position of the match.
|
| 9695 |
is the line number and the second element is the byte index of
|
| 9696 |
-
the column position of the match.
|
| 9697 |
returns [0, 0].
|
| 9698 |
Example: >
|
| 9699 |
:let [lnum, col] = searchpos('mypattern', 'n')
|
|
@@ -9744,7 +9756,7 @@ setbufline({buf}, {lnum}, {text}) *setbufline()*
|
|
| 9744 |
Set line {lnum} to {text} in buffer {buf}. This works like
|
| 9745 |
|setline()| for the specified buffer.
|
| 9746 |
|
| 9747 |
-
This function works only for loaded buffers.
|
| 9748 |
|bufload()| if needed.
|
| 9749 |
|
| 9750 |
To insert lines use |appendbufline()|.
|
|
@@ -9967,7 +9979,7 @@ setfperm({fname}, {mode}) *setfperm()* *chmod*
|
|
| 9967 |
|
| 9968 |
setline({lnum}, {text}) *setline()*
|
| 9969 |
Set line {lnum} of the current buffer to {text}. To insert
|
| 9970 |
-
lines use |append()|.
|
| 9971 |
|setbufline()|.
|
| 9972 |
Any text properties in {lnum} are cleared. See
|
| 9973 |
|text-prop-cleared|
|
|
@@ -9979,8 +9991,8 @@ setline({lnum}, {text}) *setline()*
|
|
| 9979 |
converted to a String. When {text} is an empty List then
|
| 9980 |
nothing is changed and FALSE is returned.
|
| 9981 |
|
| 9982 |
-
If this succeeds, FALSE is returned. If this fails (most
|
| 9983 |
-
because {lnum} is invalid) TRUE is returned.
|
| 9984 |
In |Vim9| script an error is given if {lnum} is invalid.
|
| 9985 |
|
| 9986 |
Example: >
|
|
@@ -10016,7 +10028,7 @@ setloclist({nr}, {list} [, {action} [, {what}]]) *setloclist()*
|
|
| 10016 |
For {action} see |setqflist-action|.
|
| 10017 |
|
| 10018 |
If the optional {what} dictionary argument is supplied, then
|
| 10019 |
-
only the items listed in {what} are set.
|
| 10020 |
for the list of supported keys in {what}.
|
| 10021 |
|
| 10022 |
Can also be used as a |method|, the base is passed as the
|
|
@@ -10060,10 +10072,10 @@ setpos({expr}, {list}) *setpos()*
|
|
| 10060 |
|
| 10061 |
"lnum" and "col" are the position in the buffer. The first
|
| 10062 |
column is 1. Use a zero "lnum" to delete a mark. If "col" is
|
| 10063 |
-
smaller than 1 then 1 is used.
|
| 10064 |
instead of the byte count, use |setcharpos()|.
|
| 10065 |
|
| 10066 |
-
The "off" number is only used when 'virtualedit' is set.
|
| 10067 |
it is the offset in screen columns from the start of the
|
| 10068 |
character. E.g., a position within a <Tab> or after the last
|
| 10069 |
character.
|
|
@@ -10099,14 +10111,14 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
|
| 10099 |
Create or replace or add to the quickfix list.
|
| 10100 |
|
| 10101 |
If the optional {what} dictionary argument is supplied, then
|
| 10102 |
-
only the items listed in {what} are set.
|
| 10103 |
argument is ignored. See below for the supported items in
|
| 10104 |
{what}.
|
| 10105 |
*setqflist-what*
|
| 10106 |
-
When {what} is not present, the items in {list} are used.
|
| 10107 |
-
item must be a dictionary. Non-dictionary items in
|
| 10108 |
-
ignored. Each dictionary item can contain the
|
| 10109 |
-
entries:
|
| 10110 |
|
| 10111 |
bufnr buffer number; must be the number of a valid
|
| 10112 |
buffer
|
|
@@ -10145,7 +10157,7 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
|
| 10145 |
|
| 10146 |
{action} values: *setqflist-action* *E927*
|
| 10147 |
'a' The items from {list} are added to the existing
|
| 10148 |
-
quickfix list.
|
| 10149 |
new list is created.
|
| 10150 |
|
| 10151 |
'r' The items from the current quickfix list are replaced
|
|
@@ -10159,23 +10171,23 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
|
| 10159 |
freed.
|
| 10160 |
|
| 10161 |
If {action} is not present or is set to ' ', then a new list
|
| 10162 |
-
is created.
|
| 10163 |
quickfix list in the stack and all the following lists are
|
| 10164 |
-
freed.
|
| 10165 |
set "nr" in {what} to "$".
|
| 10166 |
|
| 10167 |
The following items can be specified in dictionary {what}:
|
| 10168 |
-
context quickfix list context.
|
| 10169 |
efm errorformat to use when parsing text from
|
| 10170 |
-
"lines".
|
| 10171 |
'errorformat' option value is used.
|
| 10172 |
See |quickfix-parse|
|
| 10173 |
id quickfix list identifier |quickfix-ID|
|
| 10174 |
idx index of the current entry in the quickfix
|
| 10175 |
-
list specified by 'id' or 'nr'.
|
| 10176 |
-
then the last entry in the list is set as
|
| 10177 |
-
current entry. See |quickfix-index|
|
| 10178 |
-
items list of quickfix entries.
|
| 10179 |
argument.
|
| 10180 |
lines use 'errorformat' to parse a list of lines and
|
| 10181 |
add the resulting entries to the quickfix list
|
|
@@ -10190,11 +10202,11 @@ setqflist({list} [, {action} [, {what}]]) *setqflist()*
|
|
| 10190 |
a function or a funcref or a lambda. Refer to
|
| 10191 |
|quickfix-window-function| for an explanation
|
| 10192 |
of how to write the function and an example.
|
| 10193 |
-
title quickfix list title text.
|
| 10194 |
Unsupported keys in {what} are ignored.
|
| 10195 |
-
If the "nr" item is not present, then the current quickfix
|
| 10196 |
-
is modified.
|
| 10197 |
-
set to a value one greater than the quickfix stack size.
|
| 10198 |
When modifying a quickfix list, to guarantee that the correct
|
| 10199 |
list is modified, "id" should be used instead of "nr" to
|
| 10200 |
specify the list.
|
|
@@ -10239,14 +10251,14 @@ setreg({regname}, {value} [, {options}]) *setreg()*
|
|
| 10239 |
|
| 10240 |
If {options} contains no register settings, then the default
|
| 10241 |
is to use character mode unless {value} ends in a <NL> for
|
| 10242 |
-
string {value} and linewise mode for list {value}.
|
| 10243 |
mode is never selected automatically.
|
| 10244 |
Returns zero for success, non-zero for failure.
|
| 10245 |
|
| 10246 |
*E883*
|
| 10247 |
Note: you may not use |List| containing more than one item to
|
| 10248 |
-
set search and expression registers.
|
| 10249 |
-
items act like empty strings.
|
| 10250 |
|
| 10251 |
Examples: >
|
| 10252 |
:call setreg(v:register, @*)
|
|
@@ -10326,7 +10338,7 @@ settagstack({nr}, {dict} [, {action}]) *settagstack()*
|
|
| 10326 |
{nr} can be the window number or the |window-ID|.
|
| 10327 |
|
| 10328 |
For a list of supported items in {dict}, refer to
|
| 10329 |
-
|gettagstack()|.
|
| 10330 |
stack.
|
| 10331 |
*E962*
|
| 10332 |
How the tag stack is modified depends on the {action}
|
|
@@ -10400,7 +10412,7 @@ shellescape({string} [, {special}]) *shellescape()*
|
|
| 10400 |
replace all "'" with "'\''".
|
| 10401 |
|
| 10402 |
The {special} argument adds additional escaping of keywords
|
| 10403 |
-
used in Vim commands.
|
| 10404 |
number or a non-empty String (|non-zero-arg|), then special
|
| 10405 |
items such as "!", "%", "#" and "<cword>" (as listed in
|
| 10406 |
|expand()|) will be preceded by a backslash.
|
|
@@ -10416,8 +10428,8 @@ shellescape({string} [, {special}]) *shellescape()*
|
|
| 10416 |
escaped a second time.
|
| 10417 |
|
| 10418 |
The "\" character will be escaped when 'shell' contains "fish"
|
| 10419 |
-
in the tail.
|
| 10420 |
-
character inside single quotes.
|
| 10421 |
|
| 10422 |
Example of use with a |:!| command: >
|
| 10423 |
:exe '!dir ' .. shellescape(expand('<cfile>'), 1)
|
|
@@ -10433,16 +10445,17 @@ shellescape({string} [, {special}]) *shellescape()*
|
|
| 10433 |
|
| 10434 |
|
| 10435 |
shiftwidth([{col}]) *shiftwidth()*
|
| 10436 |
-
Returns the effective value of 'shiftwidth'.
|
| 10437 |
'shiftwidth' value unless it is zero, in which case it is the
|
| 10438 |
'tabstop' value. This function was introduced with patch
|
| 10439 |
7.3.694 in 2012, everybody should have it by now (however it
|
| 10440 |
did not allow for the optional {col} argument until 8.1.542).
|
| 10441 |
|
| 10442 |
When there is one argument {col} this is used as column number
|
| 10443 |
-
for which to return the 'shiftwidth' value.
|
| 10444 |
-
'vartabstop' feature.
|
| 10445 |
-
no {col} argument is given, column 1 will be
|
|
|
|
| 10446 |
|
| 10447 |
Can also be used as a |method|: >
|
| 10448 |
GetColumn()->shiftwidth()
|
|
@@ -10458,7 +10471,7 @@ simplify({filename}) *simplify()*
|
|
| 10458 |
Unix) are not resolved. If the first path component in
|
| 10459 |
{filename} designates the current directory, this will be
|
| 10460 |
valid for the result as well. A trailing path separator is
|
| 10461 |
-
not removed either.
|
| 10462 |
"///path" is simplified to "/path" (this follows the Posix
|
| 10463 |
standard).
|
| 10464 |
Example: >
|
|
@@ -10540,11 +10553,11 @@ sort({list} [, {how} [, {dict}]]) *sort()* *E702*
|
|
| 10540 |
can be used to ignore case. Zero means to not ignore case.
|
| 10541 |
|
| 10542 |
When {how} is given and it is 'l' then the current collation
|
| 10543 |
-
locale is used for ordering.
|
| 10544 |
-
is used to compare strings.
|
| 10545 |
-
collation locale.
|
| 10546 |
-
current locale.
|
| 10547 |
-
case.
|
| 10548 |
" ö is sorted similarly to o with English locale.
|
| 10549 |
:language collate en_US.UTF8
|
| 10550 |
:echo sort(['n', 'o', 'O', 'ö', 'p', 'z'], 'l')
|
|
@@ -10563,11 +10576,11 @@ sort({list} [, {how} [, {dict}]]) *sort()* *E702*
|
|
| 10563 |
sort a list of strings with numbers!
|
| 10564 |
|
| 10565 |
When {how} is given and it is 'N' then all items will be
|
| 10566 |
-
sorted numerical.
|
| 10567 |
digits will be used as the number they represent.
|
| 10568 |
|
| 10569 |
When {how} is given and it is 'f' then all items will be
|
| 10570 |
-
sorted numerical.
|
| 10571 |
|
| 10572 |
When {how} is a |Funcref| or a function name, this function
|
| 10573 |
is called to compare items. The function is invoked with two
|
|
@@ -10579,7 +10592,7 @@ sort({list} [, {how} [, {dict}]]) *sort()* *E702*
|
|
| 10579 |
used to set the local variable "self". |Dictionary-function|
|
| 10580 |
|
| 10581 |
The sort is stable, items which compare equal (as number or as
|
| 10582 |
-
string) will keep their relative position.
|
| 10583 |
on numbers, text strings will sort next to each other, in the
|
| 10584 |
same order as they were originally.
|
| 10585 |
|
|
@@ -10675,7 +10688,7 @@ sound_stop({id}) *sound_stop()*
|
|
| 10675 |
package, otherwise sound may not stop.
|
| 10676 |
|
| 10677 |
On MS-Windows, this does not work for event sound started by
|
| 10678 |
-
`sound_playevent()`.
|
| 10679 |
|
| 10680 |
Can also be used as a |method|: >
|
| 10681 |
soundid->sound_stop()
|
|
@@ -10761,7 +10774,7 @@ split({string} [, {pattern} [, {keepempty}]]) *split()*
|
|
| 10761 |
empty each white space separated sequence of characters
|
| 10762 |
becomes an item.
|
| 10763 |
Otherwise the string is split where {pattern} matches,
|
| 10764 |
-
removing the matched characters.
|
| 10765 |
here, add \c to ignore case. |/\c|
|
| 10766 |
When the first or last item is empty it is omitted, unless the
|
| 10767 |
{keepempty} argument is given and it's non-zero.
|
|
@@ -10929,7 +10942,8 @@ str2list({string} [, {utf8}]) *str2list()*
|
|
| 10929 |
str2list("ABC") returns [65, 66, 67]
|
| 10930 |
< |list2str()| does the opposite.
|
| 10931 |
|
| 10932 |
-
When {utf8} is omitted or zero, the current 'encoding' is
|
|
|
|
| 10933 |
When {utf8} is TRUE, always treat the String as UTF-8
|
| 10934 |
characters. With UTF-8 composing characters are handled
|
| 10935 |
properly: >
|
|
@@ -11047,7 +11061,8 @@ strdisplaywidth({string} [, {col}]) *strdisplaywidth()*
|
|
| 11047 |
matters for anything that's displayed differently, such as
|
| 11048 |
'tabstop' and 'display'.
|
| 11049 |
When {string} contains characters with East Asian Width Class
|
| 11050 |
-
Ambiguous, this function's return value depends on
|
|
|
|
| 11051 |
Returns zero on error.
|
| 11052 |
Also see |strlen()|, |strwidth()| and |strchars()|.
|
| 11053 |
|
|
@@ -11305,7 +11320,8 @@ strwidth({string}) *strwidth()*
|
|
| 11305 |
String {string} occupies. A Tab character is counted as one
|
| 11306 |
cell, alternatively use |strdisplaywidth()|.
|
| 11307 |
When {string} contains characters with East Asian Width Class
|
| 11308 |
-
Ambiguous, this function's return value depends on
|
|
|
|
| 11309 |
Returns zero on error.
|
| 11310 |
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
|
| 11311 |
|
|
@@ -11378,7 +11394,7 @@ substitute({string}, {pat}, {sub}, {flags}) *substitute()*
|
|
| 11378 |
< results in "TESTING".
|
| 11379 |
|
| 11380 |
When {sub} starts with "\=", the remainder is interpreted as
|
| 11381 |
-
an expression.
|
| 11382 |
:echo substitute(s, '%\(\x\x\)',
|
| 11383 |
\ '\=nr2char("0x" .. submatch(1))', 'g')
|
| 11384 |
|
|
@@ -11414,7 +11430,7 @@ swapfilelist() *swapfilelist()*
|
|
| 11414 |
|
| 11415 |
swapinfo({fname}) *swapinfo()*
|
| 11416 |
The result is a dictionary, which holds information about the
|
| 11417 |
-
swapfile {fname}.
|
| 11418 |
version Vim version
|
| 11419 |
user user name
|
| 11420 |
host host name
|
|
@@ -11543,14 +11559,14 @@ synconcealed({lnum}, {col}) *synconcealed()*
|
|
| 11543 |
1. The first item in the list is 0 if the character at the
|
| 11544 |
position {lnum} and {col} is not part of a concealable
|
| 11545 |
region, 1 if it is. {lnum} is used like with |getline()|.
|
| 11546 |
-
2. The second item in the list is a string.
|
| 11547 |
is 1, the second item contains the text which will be
|
| 11548 |
displayed in place of the concealed text, depending on the
|
| 11549 |
current setting of 'conceallevel' and 'listchars'.
|
| 11550 |
3. The third and final item in the list is a number
|
| 11551 |
representing the specific syntax region matched in the
|
| 11552 |
-
line.
|
| 11553 |
-
zero.
|
| 11554 |
concealable region if there are two consecutive regions
|
| 11555 |
with the same replacement character. For an example, if
|
| 11556 |
the text is "123456" and both "23" and "45" are concealed
|
|
@@ -11660,10 +11676,10 @@ system({expr} [, {input}]) *system()* *E677*
|
|
| 11660 |
|
| 11661 |
systemlist({expr} [, {input}]) *systemlist()*
|
| 11662 |
Same as |system()|, but returns a |List| with lines (parts of
|
| 11663 |
-
output separated by NL) with NULs transformed into NLs.
|
| 11664 |
-
is the same as |readfile()| will output with {binary}
|
| 11665 |
-
set to "b", except that there is no extra empty item
|
| 11666 |
-
result ends in a NL.
|
| 11667 |
Note that on MS-Windows you may get trailing CR characters.
|
| 11668 |
|
| 11669 |
To see the difference between "echo hello" and "echo -n hello"
|
|
@@ -11681,7 +11697,7 @@ systemlist({expr} [, {input}]) *systemlist()*
|
|
| 11681 |
tabpagebuflist([{arg}]) *tabpagebuflist()*
|
| 11682 |
The result is a |List|, where each item is the number of the
|
| 11683 |
buffer associated with each window in the current tab page.
|
| 11684 |
-
{arg} specifies the number of the tab page to be used.
|
| 11685 |
omitted the current tab page is used.
|
| 11686 |
When {arg} is invalid the number zero is returned.
|
| 11687 |
To get a list of all buffers in all tabs use this: >
|
|
@@ -11744,7 +11760,7 @@ taglist({expr} [, {filename}]) *taglist()*
|
|
| 11744 |
Returns a |List| of tags matching the regular expression {expr}.
|
| 11745 |
|
| 11746 |
If {filename} is passed it is used to prioritize the results
|
| 11747 |
-
in the same way that |:tselect| does.
|
| 11748 |
{filename} should be the full path of the file.
|
| 11749 |
|
| 11750 |
Each list item is a dictionary with at least the following
|
|
@@ -11780,7 +11796,7 @@ taglist({expr} [, {filename}]) *taglist()*
|
|
| 11780 |
search regular expression pattern.
|
| 11781 |
|
| 11782 |
Refer to 'tags' for information about how the tags file is
|
| 11783 |
-
located by Vim.
|
| 11784 |
the tags file generated by the different ctags tools.
|
| 11785 |
|
| 11786 |
Can also be used as a |method|: >
|
|
@@ -11933,7 +11949,7 @@ timer_pause({timer}, {paused}) *timer_pause()*
|
|
| 11933 |
timer_start({time}, {callback} [, {options}])
|
| 11934 |
Create a timer and return the timer ID.
|
| 11935 |
|
| 11936 |
-
{time} is the waiting time in milliseconds.
|
| 11937 |
minimum time before invoking the callback. When the system is
|
| 11938 |
busy or Vim is not waiting for input the time will be longer.
|
| 11939 |
Zero can be used to execute the callback when Vim is back in
|
|
@@ -12311,8 +12327,9 @@ utf16idx({string}, {idx} [, {countcc} [, {charidx}]])
|
|
| 12311 |
downwards to the beginning of that sequence.
|
| 12312 |
|
| 12313 |
Returns -1 if the arguments are invalid or if there are less
|
| 12314 |
-
than {idx} bytes in {string}.
|
| 12315 |
-
the length of the string in UTF-16 code units is
|
|
|
|
| 12316 |
|
| 12317 |
See |byteidx()| and |byteidxcomp()| for getting the byte index
|
| 12318 |
from the UTF-16 index and |charidx()| for getting the
|
|
@@ -12351,7 +12368,7 @@ virtcol({expr} [, {list} [, {winid}]]) *virtcol()*
|
|
| 12351 |
the character at that position. When there is a <Tab> at the
|
| 12352 |
position, the returned Number will be the column at the end of
|
| 12353 |
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
|
| 12354 |
-
set to 8, it returns 8.
|
| 12355 |
For the byte position use |col()|.
|
| 12356 |
|
| 12357 |
For the use of {expr} see |getpos()| and |col()|.
|
|
@@ -12413,7 +12430,7 @@ virtcol2col({winid}, {lnum}, {col}) *virtcol2col()*
|
|
| 12413 |
byte in the character is returned.
|
| 12414 |
|
| 12415 |
The {winid} argument can be the window number or the
|
| 12416 |
-
|window-ID|.
|
| 12417 |
|
| 12418 |
Returns -1 if the window {winid} doesn't exist or the buffer
|
| 12419 |
line {lnum} or virtual column {col} is invalid.
|
|
@@ -12451,7 +12468,7 @@ wildmenumode() *wildmenumode()*
|
|
| 12451 |
Returns |TRUE| when the wildmenu is active and |FALSE|
|
| 12452 |
otherwise. See 'wildmenu' and 'wildmode'.
|
| 12453 |
This can be used in mappings to handle the 'wildcharm' option
|
| 12454 |
-
gracefully.
|
| 12455 |
|
| 12456 |
For example to make <c-j> work like <down> in wildmode, use: >
|
| 12457 |
:cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>"
|
|
@@ -12534,7 +12551,7 @@ win_getid([{win} [, {tab}]]) *win_getid()*
|
|
| 12534 |
|
| 12535 |
win_gettype([{nr}]) *win_gettype()*
|
| 12536 |
Return the type of the window:
|
| 12537 |
-
"autocmd" autocommand window.
|
| 12538 |
used to execute autocommands.
|
| 12539 |
"command" command-line window |cmdwin|
|
| 12540 |
(empty) normal window
|
|
@@ -12592,14 +12609,14 @@ win_id2win({expr}) *win_id2win()*
|
|
| 12592 |
|
| 12593 |
win_move_separator({nr}, {offset}) *win_move_separator()*
|
| 12594 |
Move window {nr}'s vertical separator (i.e., the right border)
|
| 12595 |
-
by {offset} columns, as if being dragged by the mouse.
|
| 12596 |
-
can be a window number or |window-ID|.
|
| 12597 |
-
moves right and a negative {offset} moves left.
|
| 12598 |
window's vertical separator will change the width of the
|
| 12599 |
window and the width of other windows adjacent to the vertical
|
| 12600 |
-
separator.
|
| 12601 |
specified (e.g., as a consequence of maintaining
|
| 12602 |
-
'winminwidth').
|
| 12603 |
FALSE otherwise.
|
| 12604 |
This will fail for the rightmost window and a full-width
|
| 12605 |
window, since it has no separator on the right.
|
|
@@ -12613,14 +12630,14 @@ win_move_separator({nr}, {offset}) *win_move_separator()*
|
|
| 12613 |
|
| 12614 |
win_move_statusline({nr}, {offset}) *win_move_statusline()*
|
| 12615 |
Move window {nr}'s status line (i.e., the bottom border) by
|
| 12616 |
-
{offset} rows, as if being dragged by the mouse.
|
| 12617 |
-
window number or |window-ID|.
|
| 12618 |
-
and a negative {offset} moves up.
|
| 12619 |
-
line will change the height of the window and the
|
| 12620 |
-
other windows adjacent to the status line.
|
| 12621 |
-
movement may be smaller than specified (e.g., as
|
| 12622 |
-
of maintaining 'winminheight').
|
| 12623 |
-
be found and FALSE otherwise.
|
| 12624 |
Only works for the current tab page.
|
| 12625 |
|
| 12626 |
Can also be used as a |method|: >
|
|
@@ -12723,7 +12740,7 @@ winlayout([{tabnr}]) *winlayout()*
|
|
| 12723 |
in a tabpage.
|
| 12724 |
|
| 12725 |
Without {tabnr} use the current tabpage, otherwise the tabpage
|
| 12726 |
-
with number {tabnr}.
|
| 12727 |
returns an empty list.
|
| 12728 |
|
| 12729 |
For a leaf window, it returns:
|
|
@@ -12818,14 +12835,15 @@ winrestview({dict}) *winrestview()*
|
|
| 12818 |
Uses the |Dictionary| returned by |winsaveview()| to restore
|
| 12819 |
the view of the current window.
|
| 12820 |
Note: The {dict} does not have to contain all values, that are
|
| 12821 |
-
returned by |winsaveview()|.
|
| 12822 |
-
settings won't be restored.
|
| 12823 |
:call winrestview({'curswant': 4})
|
| 12824 |
<
|
| 12825 |
This will only set the curswant value (the column the cursor
|
| 12826 |
wants to move on vertical movements) of the cursor to column 5
|
| 12827 |
(yes, that is 5), while all other settings will remain the
|
| 12828 |
-
same.
|
|
|
|
| 12829 |
|
| 12830 |
If you have changed the values the result is unpredictable.
|
| 12831 |
If the window size changed the result won't be the same.
|
|
@@ -12844,7 +12862,7 @@ winsaveview() *winsaveview()*
|
|
| 12844 |
buffer and you want to go back to the original view.
|
| 12845 |
This does not save fold information. Use the 'foldenable'
|
| 12846 |
option to temporarily switch off folding, so that folds are
|
| 12847 |
-
not opened when moving around.
|
| 12848 |
The return value includes:
|
| 12849 |
lnum cursor line number
|
| 12850 |
col cursor column (Note: the first column
|
|
@@ -13233,7 +13251,8 @@ xpm Compiled with pixmap support.
|
|
| 13233 |
xpm_w32 Compiled with pixmap support for Win32. (Only for
|
| 13234 |
backward compatibility. Use "xpm" instead.)
|
| 13235 |
xsmp Compiled with X session management support.
|
| 13236 |
-
xsmp_interact Compiled with interactive X session management
|
|
|
|
| 13237 |
xterm_clipboard Compiled with support for xterm clipboard.
|
| 13238 |
xterm_save Compiled with support for saving and restoring the
|
| 13239 |
xterm screen.
|
|
|
|
| 1 |
+
*builtin.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 889 |
appendbufline({buf}, {lnum}, {text}) *appendbufline()*
|
| 890 |
Like |append()| but append the text in buffer {buf}.
|
| 891 |
|
| 892 |
+
This function works only for loaded buffers. First call
|
| 893 |
|bufload()| if needed.
|
| 894 |
|
| 895 |
For the use of {buf}, see |bufname()|.
|
|
|
|
| 903 |
In |Vim9| script an error is given for an invalid {lnum}.
|
| 904 |
|
| 905 |
If {buf} is not a valid buffer or {lnum} is not valid, an
|
| 906 |
+
error message is given. Example: >
|
| 907 |
:let failed = appendbufline(13, 0, "# THE START")
|
| 908 |
< However, when {text} is an empty list then no error is given
|
| 909 |
for an invalid {lnum}, since {lnum} isn't actually used.
|
|
|
|
| 1036 |
If this item is specified, then the "pattern"
|
| 1037 |
item is ignored.
|
| 1038 |
cmd Ex command to execute for this autocmd event
|
| 1039 |
+
event autocmd event name. Refer to |autocmd-events|.
|
| 1040 |
This can be either a String with a single
|
| 1041 |
event name or a List of event names.
|
| 1042 |
+
group autocmd group name. Refer to |autocmd-groups|.
|
| 1043 |
If this group doesn't exist then it is
|
| 1044 |
created. If not specified or empty, then the
|
| 1045 |
default group is used.
|
| 1046 |
nested boolean flag, set to v:true to add a nested
|
| 1047 |
autocmd. Refer to |autocmd-nested|.
|
| 1048 |
once boolean flag, set to v:true to add an autocmd
|
| 1049 |
+
which executes only once. Refer to
|
| 1050 |
|autocmd-once|.
|
| 1051 |
+
pattern autocmd pattern string. Refer to
|
| 1052 |
|autocmd-patterns|. If "bufnr" item is
|
| 1053 |
present, then this item is ignored. This can
|
| 1054 |
be a String with a single pattern or a List of
|
|
|
|
| 1057 |
commands associated with the specified autocmd
|
| 1058 |
event and group and add the {cmd}. This is
|
| 1059 |
useful to avoid adding the same command
|
| 1060 |
+
multiple times for an autocmd event in a
|
| 1061 |
+
group.
|
| 1062 |
|
| 1063 |
Returns v:true on success and v:false on failure.
|
| 1064 |
Examples: >
|
|
|
|
| 1081 |
|
| 1082 |
The {acmds} argument is a List where each item is a Dict with
|
| 1083 |
the following optional items:
|
| 1084 |
+
bufnr buffer number to delete a buffer-local
|
| 1085 |
+
autocmd. If this item is specified, then the
|
| 1086 |
+
"pattern" item is ignored.
|
| 1087 |
cmd Ex command for this autocmd event
|
| 1088 |
+
event autocmd event name. Refer to |autocmd-events|.
|
| 1089 |
If '*' then all the autocmd events in this
|
| 1090 |
group are deleted.
|
| 1091 |
+
group autocmd group name. Refer to |autocmd-groups|.
|
| 1092 |
If not specified or empty, then the default
|
| 1093 |
group is used.
|
| 1094 |
nested set to v:true for a nested autocmd.
|
| 1095 |
Refer to |autocmd-nested|.
|
| 1096 |
once set to v:true for an autocmd which executes
|
| 1097 |
+
only once. Refer to |autocmd-once|.
|
| 1098 |
+
pattern autocmd pattern string. Refer to
|
| 1099 |
|autocmd-patterns|. If "bufnr" item is
|
| 1100 |
present, then this item is ignored.
|
| 1101 |
|
|
|
|
| 1129 |
|
| 1130 |
|
| 1131 |
autocmd_get([{opts}]) *autocmd_get()*
|
| 1132 |
+
Returns a |List| of autocmds. If {opts} is not supplied, then
|
| 1133 |
returns the autocmds for all the events in all the groups.
|
| 1134 |
|
| 1135 |
The optional {opts} Dict argument supports the following
|
| 1136 |
items:
|
| 1137 |
+
group Autocmd group name. If specified, returns
|
| 1138 |
+
only the autocmds defined in this group. If
|
| 1139 |
+
the specified group doesn't exist, results in
|
| 1140 |
+
an error message. If set to an empty string,
|
| 1141 |
then the default autocmd group is used.
|
| 1142 |
+
event Autocmd event name. If specified, returns
|
| 1143 |
+
only the autocmds defined for this event. If
|
| 1144 |
+
set to "*", then returns autocmds for all the
|
| 1145 |
events. If the specified event doesn't exist,
|
| 1146 |
results in an error message.
|
| 1147 |
+
pattern Autocmd pattern. If specified, returns only
|
| 1148 |
the autocmds defined for this pattern.
|
| 1149 |
A combination of the above three times can be supplied in
|
| 1150 |
{opts}.
|
|
|
|
| 1156 |
event Autocmd event name.
|
| 1157 |
group Autocmd group name.
|
| 1158 |
nested Boolean flag, set to v:true for a nested
|
| 1159 |
+
autocmd. See |autocmd-nested|.
|
| 1160 |
once Boolean flag, set to v:true, if the autocmd
|
| 1161 |
+
will be executed only once. See |autocmd-once|.
|
| 1162 |
pattern Autocmd pattern. For a buffer-local
|
| 1163 |
+
autocmd, this will be of the form
|
| 1164 |
+
"<buffer=n>".
|
| 1165 |
If there are multiple commands for an autocmd event in a
|
| 1166 |
group, then separate items are returned for each command.
|
| 1167 |
|
|
|
|
| 1512 |
{create} argument is present and TRUE, a new, unlisted,
|
| 1513 |
buffer is created and its number is returned. Example: >
|
| 1514 |
let newbuf = bufnr('Scratch001', 1)
|
| 1515 |
+
< Using an empty name uses the current buffer. To create a new
|
| 1516 |
buffer with an empty name use |bufadd()|.
|
| 1517 |
|
| 1518 |
bufnr("$") is the last buffer: >
|
|
|
|
| 1700 |
Examples: >
|
| 1701 |
char2nr(" ") returns 32
|
| 1702 |
char2nr("ABC") returns 65
|
| 1703 |
+
< When {utf8} is omitted or zero, the current 'encoding' is
|
| 1704 |
+
used.
|
| 1705 |
Example for "utf-8": >
|
| 1706 |
char2nr("á") returns 225
|
| 1707 |
char2nr("á"[0]) returns 195
|
|
|
|
| 1766 |
index in the String {expr} instead of as the byte index.
|
| 1767 |
|
| 1768 |
Returns -1 if the arguments are invalid or if there are less
|
| 1769 |
+
than {idx} bytes. If there are exactly {idx} bytes the length
|
| 1770 |
of the string in characters is returned.
|
| 1771 |
|
| 1772 |
An error is given and -1 is returned if the first argument is
|
|
|
|
| 1858 |
completion began.
|
| 1859 |
pum_visible |TRUE| if popup menu is visible.
|
| 1860 |
See |pumvisible()|.
|
| 1861 |
+
matches List of all completion candidates. Each item
|
| 1862 |
is a string.
|
| 1863 |
selected Selected item index. First index is zero.
|
| 1864 |
Index is -1 if no item is selected (showing
|
|
|
|
| 1880 |
When {expr} is "$", it means the end of the cursor line, so
|
| 1881 |
the result is the number of bytes in the cursor line plus one.
|
| 1882 |
Additionally {expr} can be [lnum, col]: a |List| with the line
|
| 1883 |
+
and column number. Most useful when the column is "$", to get
|
| 1884 |
the last column of a specific line. When "lnum" or "col" is
|
| 1885 |
out of range then col() returns zero.
|
| 1886 |
|
|
|
|
| 1917 |
|
| 1918 |
|
| 1919 |
complete({startcol}, {matches}) *complete()* *E785*
|
| 1920 |
+
Set the matches for Insert mode completion. Can only be
|
| 1921 |
used in Insert mode. Typically invoked from a mapping with
|
| 1922 |
CTRL-R = (see |i_CTRL-R|), but may also be called from a
|
| 1923 |
|<Cmd>| or |<ScriptCmd>| mapping. It does not work after
|
|
|
|
| 2004 |
See |complete_info_mode| for the values.
|
| 2005 |
pum_visible |TRUE| if popup menu is visible.
|
| 2006 |
See |pumvisible()|.
|
| 2007 |
+
items List of all completion candidates. Each item
|
| 2008 |
is a dictionary containing the entries "word",
|
| 2009 |
+
"abbr", "menu", "kind", "info" and
|
| 2010 |
+
"user_data".
|
| 2011 |
See |complete-items|.
|
| 2012 |
matches Same as "items", but only returns items that
|
| 2013 |
+
are matching current query. If both "matches"
|
| 2014 |
and "items" are in "what", the returned list
|
| 2015 |
will still be named "items", but each item
|
| 2016 |
will have an additional "match" field.
|
|
|
|
| 2049 |
{what} are silently ignored.
|
| 2050 |
|
| 2051 |
To get the position and size of the popup menu, see
|
| 2052 |
+
|pum_getpos()|. It's also available in |v:event| during the
|
| 2053 |
|CompleteChanged| event.
|
| 2054 |
|
| 2055 |
Returns an empty |Dictionary| on error.
|
|
|
|
| 2069 |
|
| 2070 |
complete_match([{lnum}, {col}]) *complete_match()*
|
| 2071 |
Searches backward from the given position and returns a List
|
| 2072 |
+
of matches according to the 'isexpand' option. When no
|
| 2073 |
arguments are provided, uses the current cursor position.
|
| 2074 |
|
| 2075 |
Each match is represented as a List containing
|
| 2076 |
[startcol, trigger_text] where:
|
| 2077 |
- startcol: column position where completion should start,
|
| 2078 |
+
or -1 if no trigger position is found. For multi-character
|
| 2079 |
triggers, returns the column of the first character.
|
| 2080 |
- trigger_text: the matching trigger string from 'isexpand',
|
| 2081 |
or empty string if no match was found or when using the
|
|
|
|
| 2232 |
When {ic} is given and it's |TRUE| then case is ignored.
|
| 2233 |
|
| 2234 |
When {comp} is a string then the number of not overlapping
|
| 2235 |
+
occurrences of {expr} is returned. Zero is returned when
|
| 2236 |
{expr} is an empty string.
|
| 2237 |
|
| 2238 |
Can also be used as a |method|: >
|
|
|
|
| 2326 |
debugbreak({pid}) *debugbreak()*
|
| 2327 |
Specifically used to interrupt a program being debugged. It
|
| 2328 |
will cause process {pid} to get a SIGTRAP. Behavior for other
|
| 2329 |
+
processes is undefined. See |terminal-debugger|.
|
| 2330 |
{only available on MS-Windows}
|
| 2331 |
|
| 2332 |
Returns |TRUE| if successfully interrupted the program.
|
|
|
|
| 2401 |
If {last} is omitted then delete line {first} only.
|
| 2402 |
On success 0 is returned, on failure 1 is returned.
|
| 2403 |
|
| 2404 |
+
This function works only for loaded buffers. First call
|
| 2405 |
|bufload()| if needed.
|
| 2406 |
|
| 2407 |
For the use of {buf}, see |bufname()| above.
|
| 2408 |
|
| 2409 |
+
{first} and {last} are used like with |getline()|. Note that
|
| 2410 |
+
when using |line()| this refers to the current buffer. Use "$"
|
| 2411 |
to refer to the last line in buffer {buf}.
|
| 2412 |
|
| 2413 |
Can also be used as a |method|: >
|
|
|
|
| 2644 |
|
| 2645 |
echoraw({string}) *echoraw()*
|
| 2646 |
Output {string} as-is, including unprintable characters.
|
| 2647 |
+
This can be used to output a terminal code. For example, to
|
| 2648 |
disable modifyOtherKeys: >
|
| 2649 |
call echoraw(&t_TE)
|
| 2650 |
< and to enable it again: >
|
|
|
|
| 2677 |
|
| 2678 |
|
| 2679 |
environ() *environ()*
|
| 2680 |
+
Return all of environment variables as dictionary. You can
|
| 2681 |
check if an environment variable exists like this: >
|
| 2682 |
:echo has_key(environ(), 'HOME')
|
| 2683 |
< Note that the variable name may be CamelCase; to ignore case
|
|
|
|
| 3161 |
{string}.
|
| 3162 |
|
| 3163 |
To include special keys into {string}, use double-quotes
|
| 3164 |
+
and "\..." notation |expr-quote|. For example,
|
| 3165 |
+
feedkeys("\<CR>") simulates pressing of the <Enter> key. But
|
| 3166 |
feedkeys('\<CR>') pushes 5 characters.
|
| 3167 |
A special code that might be useful is <Ignore>, it exits the
|
| 3168 |
wait for a character without doing anything. *<Ignore>*
|
| 3169 |
|
| 3170 |
{mode} is a String, which can contain these character flags:
|
| 3171 |
+
'm' Remap keys. This is default. If {mode} is absent,
|
| 3172 |
keys are remapped.
|
| 3173 |
'n' Do not remap keys.
|
| 3174 |
't' Handle keys as if typed; otherwise they are handled as
|
| 3175 |
if coming from a mapping. This matters for undo,
|
| 3176 |
opening folds, etc.
|
| 3177 |
'L' Lowlevel input. Only works for Unix or when using the
|
| 3178 |
+
GUI. Keys are used as if they were coming from the
|
| 3179 |
terminal. Other flags are not used. *E980*
|
| 3180 |
When a CTRL-C interrupts and 't' is included it sets
|
| 3181 |
the internal "got_int" flag.
|
|
|
|
| 3195 |
legacy script syntax applies, "s:var" does not work,
|
| 3196 |
etc. Note that if the string being fed sets a script
|
| 3197 |
context this still applies.
|
| 3198 |
+
'!' When used with 'x' will not end Insert mode. Can be
|
| 3199 |
used in a test when a timer is set to exit Insert mode
|
| 3200 |
a little later. Useful for testing CursorHoldI.
|
| 3201 |
|
|
|
|
| 3208 |
|
| 3209 |
|
| 3210 |
filecopy({from}, {to}) *filecopy()*
|
| 3211 |
+
Copy the file pointed to by the name {from} to {to}. The
|
| 3212 |
result is a Number, which is |TRUE| if the file was copied
|
| 3213 |
successfully, and |FALSE| when it failed.
|
| 3214 |
If a file with name {to} already exists, it will fail.
|
|
|
|
| 3269 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 3270 |
of the current item and for a |List| |v:key| has the index of
|
| 3271 |
the current item. For a |Blob| |v:key| has the index of the
|
| 3272 |
+
current byte. For a |String| |v:key| has the index of the
|
| 3273 |
current character.
|
| 3274 |
Examples: >
|
| 3275 |
call filter(mylist, 'v:val !~ "OLD"')
|
|
|
|
| 3311 |
or a new |Blob| or |String|.
|
| 3312 |
When an error is encountered while evaluating {expr2} no
|
| 3313 |
further items in {expr1} are processed.
|
| 3314 |
+
When {expr2} is a Funcref errors inside a function are
|
| 3315 |
+
ignored, unless it was defined with the "abort" flag.
|
| 3316 |
|
| 3317 |
Can also be used as a |method|: >
|
| 3318 |
mylist->filter(expr2)
|
|
|
|
| 3592 |
foreach({expr1}, {expr2}) *foreach()* *E1525*
|
| 3593 |
{expr1} must be a |List|, |Tuple|, |String|, |Blob| or
|
| 3594 |
|Dictionary|.
|
| 3595 |
+
For each item in {expr1} execute {expr2}. {expr1} is not
|
| 3596 |
modified; its values may be, as with |:lockvar| 1. |E741|
|
| 3597 |
See |map()| and |filter()| to modify {expr1}.
|
| 3598 |
|
|
|
|
| 3602 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 3603 |
of the current item and for a |List| or a |Tuple| |v:key| has
|
| 3604 |
the index of the current item. For a |Blob| |v:key| has the
|
| 3605 |
+
index of the current byte. For a |String| |v:key| has the
|
| 3606 |
index of the current character.
|
| 3607 |
Examples: >
|
| 3608 |
call foreach(mylist, 'used[v:val] = true')
|
|
|
|
| 3623 |
Returns {expr1} in all cases.
|
| 3624 |
When an error is encountered while executing {expr2} no
|
| 3625 |
further items in {expr1} are processed.
|
| 3626 |
+
When {expr2} is a Funcref errors inside a function are
|
| 3627 |
+
ignored, unless it was defined with the "abort" flag.
|
| 3628 |
|
| 3629 |
Can also be used as a |method|: >
|
| 3630 |
mylist->foreach(expr2)
|
|
|
|
| 3676 |
It only works for an autoloaded function if it has already
|
| 3677 |
been loaded (to avoid mistakenly loading the autoload script
|
| 3678 |
when only intending to use the function name, use |function()|
|
| 3679 |
+
instead). {name} cannot be a builtin function.
|
| 3680 |
Returns 0 on error.
|
| 3681 |
|
| 3682 |
Can also be used as a |method|: >
|
|
|
|
| 3692 |
|
| 3693 |
{name} can also be a Funcref or a partial. When it is a
|
| 3694 |
partial the dict stored in it will be used and the {dict}
|
| 3695 |
+
argument is not allowed. E.g.: >
|
| 3696 |
let FuncWithArg = function(dict.Func, [arg])
|
| 3697 |
let Broken = function(dict.Func, [arg], dict)
|
| 3698 |
<
|
|
|
|
| 3701 |
same function.
|
| 3702 |
|
| 3703 |
When {arglist} or {dict} is present this creates a partial.
|
| 3704 |
+
That means the argument list and/or the dictionary is stored
|
| 3705 |
+
in the Funcref and will be used when the Funcref is called.
|
| 3706 |
|
| 3707 |
The arguments are passed to the function in front of other
|
| 3708 |
arguments, but after any argument from |method|. Example: >
|
|
|
|
| 3736 |
call Callback('one', 'two', 'name')
|
| 3737 |
|
| 3738 |
< The Dictionary is only useful when calling a "dict" function.
|
| 3739 |
+
In that case the {dict} is passed in as "self". Example: >
|
| 3740 |
function Callback() dict
|
| 3741 |
echo "called for " .. self.name
|
| 3742 |
endfunction
|
|
|
|
| 4008 |
Returns a |List| of terminal cell pixel size.
|
| 4009 |
List format is [xpixel, ypixel].
|
| 4010 |
|
| 4011 |
+
Only works on Unix (terminal and gVim) and Windows (gVim
|
| 4012 |
+
only).
|
| 4013 |
Returns [] on other systems or on failure.
|
| 4014 |
+
Note that there could be variations across different
|
| 4015 |
+
terminals.
|
| 4016 |
On macOS, system Terminal.app returns sizes in points (before
|
| 4017 |
+
Retina scaling), whereas third-party terminals return raw
|
| 4018 |
+
pixel sizes (post Retina scaling).
|
| 4019 |
|
| 4020 |
Return type: list<any>
|
| 4021 |
|
|
|
|
| 4030 |
|
| 4031 |
|
| 4032 |
getchangelist([{buf}]) *getchangelist()*
|
| 4033 |
+
Returns the |changelist| for the buffer {buf}. For the use
|
| 4034 |
+
of {buf}, see |bufname()| above. If buffer {buf} doesn't
|
| 4035 |
exist, an empty list is returned.
|
| 4036 |
|
| 4037 |
The returned list contains two entries: a list with the change
|
|
|
|
| 4042 |
coladd column offset for 'virtualedit'
|
| 4043 |
lnum line number
|
| 4044 |
If buffer {buf} is the current buffer, then the current
|
| 4045 |
+
position refers to the position in the list. For other
|
| 4046 |
buffers, it is set to the length of the list.
|
| 4047 |
|
| 4048 |
Can also be used as a |method|: >
|
|
|
|
| 4149 |
:endfunction
|
| 4150 |
<
|
| 4151 |
You may also receive synthetic characters, such as
|
| 4152 |
+
|<CursorHold>|. Often you will want to ignore this and get
|
| 4153 |
another character: >
|
| 4154 |
:function GetKey()
|
| 4155 |
: let c = getchar()
|
|
|
|
| 4182 |
|
| 4183 |
|
| 4184 |
getcharpos({expr}) *getcharpos()*
|
| 4185 |
+
Get the position for String {expr}. Same as |getpos()| but the
|
| 4186 |
column number in the returned List is a character index
|
| 4187 |
instead of a byte index.
|
| 4188 |
If |getpos()| returns a very large column number, equal to
|
|
|
|
| 4306 |
|
| 4307 |
|
| 4308 |
getcmdtype() *getcmdtype()*
|
| 4309 |
+
Return the current command-line type. Possible return values
|
| 4310 |
are:
|
| 4311 |
: normal Ex command
|
| 4312 |
> debug mode command |debug-mode|
|
|
|
|
| 4324 |
|
| 4325 |
|
| 4326 |
getcmdwintype() *getcmdwintype()*
|
| 4327 |
+
Return the current |command-line-window| type. Possible return
|
| 4328 |
+
values are the same as |getcmdtype()|. Returns an empty string
|
| 4329 |
when not in the command-line window.
|
| 4330 |
|
| 4331 |
Return type: |String|
|
| 4332 |
|
| 4333 |
|
| 4334 |
getcompletion({pat}, {type} [, {filtered}]) *getcompletion()*
|
| 4335 |
+
Return a list of command-line completion matches. The String
|
| 4336 |
{type} argument specifies what for. The following completion
|
| 4337 |
types are supported:
|
| 4338 |
|
|
|
|
| 4389 |
|
| 4390 |
If the optional {filtered} flag is set to 1, then 'wildignore'
|
| 4391 |
is applied to filter the results. Otherwise all the matches
|
| 4392 |
+
are returned. The 'wildignorecase' option always applies.
|
| 4393 |
|
| 4394 |
If the 'wildoptions' option contains 'fuzzy', then fuzzy
|
| 4395 |
+
matching is used to get the completion matches. Otherwise
|
| 4396 |
regular expression matching is used. Thus this function
|
| 4397 |
follows the user preference, what happens on the command line.
|
| 4398 |
If you do not want this you can make 'wildoptions' empty
|
|
|
|
| 4429 |
cursor vertically. After |$| command it will be a very large
|
| 4430 |
number equal to |v:maxcol|. Also see |getcursorcharpos()| and
|
| 4431 |
|getpos()|.
|
| 4432 |
+
The first "bufnum" item is always zero. The byte position of
|
| 4433 |
+
the cursor is returned in 'col'. To get the character
|
| 4434 |
position, use |getcursorcharpos()|.
|
| 4435 |
|
| 4436 |
The optional {winid} argument can specify the window. It can
|
|
|
|
| 4478 |
directory. See also |haslocaldir()|.
|
| 4479 |
|
| 4480 |
With {winnr} and {tabnr} return the local current directory of
|
| 4481 |
+
the window in the specified tab page. If {winnr} is -1 return
|
| 4482 |
the working directory of the tabpage.
|
| 4483 |
If {winnr} is zero use the current window, if {tabnr} is zero
|
| 4484 |
use the current tabpage.
|
|
|
|
| 4685 |
|
| 4686 |
For a location list window, the displayed location list is
|
| 4687 |
returned. For an invalid window number {nr}, an empty list is
|
| 4688 |
+
returned. Otherwise, same as |getqflist()|.
|
| 4689 |
|
| 4690 |
If the optional {what} dictionary argument is supplied, then
|
| 4691 |
+
returns the items listed in {what} as a dictionary. Refer to
|
| 4692 |
|getqflist()| for the supported items in {what}.
|
| 4693 |
|
| 4694 |
In addition to the items supported by |getqflist()| in {what},
|
| 4695 |
the following item is supported by |getloclist()|:
|
| 4696 |
|
| 4697 |
filewinid id of the window used to display files
|
| 4698 |
+
from the location list. This field is
|
| 4699 |
applicable only when called from a
|
| 4700 |
+
location list window. See
|
| 4701 |
|location-list-file-window| for more
|
| 4702 |
details.
|
| 4703 |
|
|
|
|
| 4858 |
|
| 4859 |
For getting the cursor position see |getcurpos()|.
|
| 4860 |
The column number in the returned List is the byte position
|
| 4861 |
+
within the line. To get the character position in the line,
|
| 4862 |
use |getcharpos()|.
|
| 4863 |
|
| 4864 |
Note that for '< and '> Visual mode matters: when it is "V"
|
|
|
|
| 4904 |
any type.
|
| 4905 |
|
| 4906 |
When there is no error list or it's empty, an empty list is
|
| 4907 |
+
returned. Quickfix list entries with a non-existing buffer
|
| 4908 |
number are returned with "bufnr" set to zero (Note: some
|
| 4909 |
functions accept buffer number zero for the alternate buffer,
|
| 4910 |
you may need to explicitly check for zero).
|
|
|
|
| 4917 |
:endfor
|
| 4918 |
<
|
| 4919 |
If the optional {what} dictionary argument is supplied, then
|
| 4920 |
+
returns only the items listed in {what} as a dictionary. The
|
| 4921 |
following string items are supported in {what}:
|
| 4922 |
changedtick get the total number of changes made
|
| 4923 |
to the list |quickfix-changedtick|
|
| 4924 |
context get the |quickfix-context|
|
| 4925 |
+
efm errorformat to use when parsing "lines". If
|
| 4926 |
not present, then the 'errorformat' option
|
| 4927 |
value is used.
|
| 4928 |
id get information for the quickfix list with
|
|
|
|
| 4936 |
lines parse a list of lines using 'efm' and return
|
| 4937 |
the resulting entries. Only a |List| type is
|
| 4938 |
accepted. The current quickfix list is not
|
| 4939 |
+
modified. See |quickfix-parse|.
|
| 4940 |
nr get information for this quickfix list; zero
|
| 4941 |
means the current quickfix list and "$" means
|
| 4942 |
the last quickfix list
|
| 4943 |
qfbufnr number of the buffer displayed in the quickfix
|
| 4944 |
+
window. Returns 0 if the quickfix buffer is
|
| 4945 |
+
not present. See |quickfix-buffer|.
|
| 4946 |
size number of entries in the quickfix list
|
| 4947 |
title get the list title |quickfix-title|
|
| 4948 |
winid get the quickfix |window-ID|
|
| 4949 |
all all of the above quickfix properties
|
| 4950 |
+
Non-string items in {what} are ignored. To get the value of a
|
| 4951 |
particular item, set it to zero.
|
| 4952 |
If "nr" is not present then the current quickfix list is used.
|
| 4953 |
If both "nr" and a non-zero "id" are specified, then the list
|
| 4954 |
specified by "id" is used.
|
| 4955 |
To get the number of lists in the quickfix stack, set "nr" to
|
| 4956 |
+
"$" in {what}. The "nr" value in the returned dictionary
|
| 4957 |
contains the quickfix stack size.
|
| 4958 |
When "lines" is specified, all the other items except "efm"
|
| 4959 |
are ignored. The returned dictionary contains the entry
|
|
|
|
| 4962 |
The returned dictionary contains the following entries:
|
| 4963 |
changedtick total number of changes made to the
|
| 4964 |
list |quickfix-changedtick|
|
| 4965 |
+
context quickfix list context. See |quickfix-context|
|
| 4966 |
If not present, set to "".
|
| 4967 |
+
id quickfix list ID |quickfix-ID|. If not
|
| 4968 |
present, set to 0.
|
| 4969 |
+
idx index of the quickfix entry in the list. If
|
| 4970 |
+
not present, set to 0.
|
| 4971 |
+
items quickfix list entries. If not present, set to
|
| 4972 |
an empty list.
|
| 4973 |
+
nr quickfix list number. If not present, set to
|
| 4974 |
+
0
|
| 4975 |
qfbufnr number of the buffer displayed in the quickfix
|
| 4976 |
+
window. If not present, set to 0.
|
| 4977 |
+
size number of entries in the quickfix list. If
|
| 4978 |
+
not present, set to 0.
|
| 4979 |
+
title quickfix list title text. If not present, set
|
| 4980 |
to "".
|
| 4981 |
+
winid quickfix |window-ID|. If not present, set to 0
|
| 4982 |
|
| 4983 |
Examples (See also |getqflist-examples|): >
|
| 4984 |
:echo getqflist({'all': 1})
|
|
|
|
| 5003 |
argument is ignored, thus you can always give it.
|
| 5004 |
|
| 5005 |
If {list} is present and |TRUE|, the result type is changed
|
| 5006 |
+
to |List|. Each list item is one text line. Use it if you care
|
| 5007 |
about zero bytes possibly present inside register: without
|
| 5008 |
third argument both NLs and zero bytes are represented as NLs
|
| 5009 |
(see |NL-used-for-Nul|).
|
|
|
|
| 5177 |
|
| 5178 |
The optional Dict argument {opts} supports the following
|
| 5179 |
optional items:
|
| 5180 |
+
name Script name match pattern. If specified,
|
| 5181 |
and "sid" is not specified, information about
|
| 5182 |
scripts with a name that match the pattern
|
| 5183 |
"name" are returned.
|
|
|
|
| 5231 |
|
| 5232 |
gettabinfo([{tabnr}]) *gettabinfo()*
|
| 5233 |
If {tabnr} is not specified, then information about all the
|
| 5234 |
+
tab pages is returned as a |List|. Each List item is a
|
| 5235 |
|Dictionary|. Otherwise, {tabnr} specifies the tab page
|
| 5236 |
number and information about that one is returned. If the tab
|
| 5237 |
page does not exist an empty List is returned.
|
|
|
|
| 5297 |
|
| 5298 |
|
| 5299 |
gettagstack([{winnr}]) *gettagstack()*
|
| 5300 |
+
The result is a Dict, which is the tag stack of window
|
| 5301 |
+
{winnr}.
|
| 5302 |
{winnr} can be the window number or the |window-ID|.
|
| 5303 |
When {winnr} is not specified, the current window is used.
|
| 5304 |
When window {winnr} doesn't exist, an empty Dict is returned.
|
| 5305 |
|
| 5306 |
The returned dictionary contains the following entries:
|
| 5307 |
+
curidx Current index in the stack. When at
|
| 5308 |
top of the stack, set to (length + 1).
|
| 5309 |
Index of bottom of the stack is 1.
|
| 5310 |
+
items List of items in the stack. Each item
|
| 5311 |
is a dictionary containing the
|
| 5312 |
entries described below.
|
| 5313 |
length Number of entries in the stack.
|
|
|
|
| 5318 |
from cursor position before the tag jump.
|
| 5319 |
See |getpos()| for the format of the
|
| 5320 |
returned list.
|
| 5321 |
+
matchnr current matching tag number. Used
|
| 5322 |
+
when multiple matching tags are found
|
| 5323 |
+
for a name.
|
| 5324 |
tagname name of the tag
|
| 5325 |
|
| 5326 |
See |tagstack| for more information about the tag stack.
|
|
|
|
| 5425 |
|
| 5426 |
getwinposx() *getwinposx()*
|
| 5427 |
The result is a Number, which is the X coordinate in pixels of
|
| 5428 |
+
the left hand side of the GUI Vim window. Also works for an
|
| 5429 |
xterm (uses a timeout of 100 msec).
|
| 5430 |
The result will be -1 if the information is not available
|
| 5431 |
(e.g. on the Wayland backend).
|
|
|
|
| 5468 |
'wildignorecase' always applies.
|
| 5469 |
|
| 5470 |
When {list} is present and it is |TRUE| the result is a |List|
|
| 5471 |
+
with all matching files. The advantage of using a List is,
|
| 5472 |
you also get filenames containing newlines correctly.
|
| 5473 |
Otherwise the result is a String and when there are several
|
| 5474 |
matches, they are separated by <NL> characters.
|
|
|
|
| 5538 |
'suffixes' affect the ordering of matches.
|
| 5539 |
|
| 5540 |
When {list} is present and it is |TRUE| the result is a |List|
|
| 5541 |
+
with all matching files. The advantage of using a List is,
|
| 5542 |
+
you also get filenames containing newlines correctly.
|
| 5543 |
+
Otherwise the result is a String and when there are several
|
| 5544 |
+
matches, they are separated by <NL> characters. Example: >
|
| 5545 |
:echo globpath(&rtp, "syntax/c.vim", 0, 1)
|
| 5546 |
<
|
| 5547 |
{alllinks} is used as with |glob()|.
|
|
|
|
| 5812 |
cleared boolean flag, set to v:true if the highlight
|
| 5813 |
group attributes are cleared or not yet
|
| 5814 |
specified. See |highlight-clear|.
|
| 5815 |
+
cterm cterm attributes. See |highlight-cterm|.
|
| 5816 |
ctermbg cterm background color.
|
| 5817 |
See |highlight-ctermbg|.
|
| 5818 |
ctermfg cterm foreground color.
|
| 5819 |
See |highlight-ctermfg|.
|
| 5820 |
ctermul cterm underline color. See |highlight-ctermul|.
|
| 5821 |
default boolean flag, set to v:true if the highlight
|
| 5822 |
+
group link is a default link. See
|
| 5823 |
|highlight-default|.
|
| 5824 |
font highlight group font. See |highlight-font|.
|
| 5825 |
+
gui gui attributes. See |highlight-gui|.
|
| 5826 |
guibg gui background color. See |highlight-guibg|.
|
| 5827 |
guifg gui foreground color. See |highlight-guifg|.
|
| 5828 |
guisp gui special color. See |highlight-guisp|.
|
| 5829 |
id highlight group ID.
|
| 5830 |
linksto linked highlight group name.
|
| 5831 |
See |:highlight-link|.
|
| 5832 |
+
name highlight group name. See |group-name|.
|
| 5833 |
start start terminal keycode. See |highlight-start|.
|
| 5834 |
stop stop terminal keycode. See |highlight-stop|.
|
| 5835 |
term term attributes. See |highlight-term|.
|
|
|
|
| 5853 |
hlset({list}) *hlset()*
|
| 5854 |
Creates or modifies the attributes of a List of highlight
|
| 5855 |
groups. Each item in {list} is a dictionary containing the
|
| 5856 |
+
attributes of a highlight group. See |hlget()| for the list of
|
| 5857 |
supported items in this dictionary.
|
| 5858 |
|
| 5859 |
In addition to the items described in |hlget()|, the following
|
|
|
|
| 5955 |
|
| 5956 |
id({item}) *id()*
|
| 5957 |
The result is a unique String associated with the {item} and
|
| 5958 |
+
not with the {item}'s contents. It is only valid while the
|
| 5959 |
+
{item} exists and is referenced. It is valid only in the
|
| 5960 |
+
instance of vim that produces the result. The whole idea is
|
| 5961 |
that `id({item})` does not change if the contents of {item}
|
| 5962 |
+
changes. This is useful as a `key` for creating an identity
|
| 5963 |
dictionary, rather than one based on equals.
|
| 5964 |
|
| 5965 |
This operation does not reference {item} and there is no
|
| 5966 |
+
function to convert the `id` to the {item}. It may be useful to
|
| 5967 |
+
have a map of `id` to {item}. The following >
|
| 5968 |
var referenceMap: dict<any>
|
| 5969 |
var id = item->id()
|
| 5970 |
referenceMap[id] = item
|
|
|
|
| 5972 |
way to get the {item} from the `id`.
|
| 5973 |
|
| 5974 |
{item} may be a List, Tuple, Dictionary, Object, Job, Channel
|
| 5975 |
+
or Blob. If the item is not a permitted type, or it is a null
|
| 5976 |
value, then an empty String is returned.
|
| 5977 |
|
| 5978 |
Can also be used as a |method|: >
|
|
|
|
| 6168 |
Restore typeahead that was saved with a previous |inputsave()|.
|
| 6169 |
Should be called the same number of times inputsave() is
|
| 6170 |
called. Calling it more often is harmless though.
|
| 6171 |
+
Returns TRUE when there is nothing to restore, FALSE
|
| 6172 |
+
otherwise.
|
| 6173 |
|
| 6174 |
Return type: |Number|
|
| 6175 |
|
|
|
|
| 6268 |
isabsolutepath({path}) *isabsolutepath()*
|
| 6269 |
The result is a Number, which is |TRUE| when {path} is an
|
| 6270 |
absolute path.
|
| 6271 |
+
On Unix, a path is considered absolute when it starts with
|
| 6272 |
+
'/'.
|
| 6273 |
+
On MS-Windows, it is considered absolute when it starts with
|
| 6274 |
+
an optional drive prefix and is followed by a '\' or '/'. UNC
|
| 6275 |
+
paths are always absolute.
|
| 6276 |
Example: >
|
| 6277 |
echo isabsolutepath('/usr/share/') " 1
|
| 6278 |
echo isabsolutepath('./foobar') " 0
|
|
|
|
| 6418 |
[1,,{one:1},,] ~
|
| 6419 |
While json_encode() would produce:
|
| 6420 |
[1,null,{"one":1},null] ~
|
| 6421 |
+
This encoding is valid for JavaScript. It is more efficient
|
| 6422 |
than JSON, especially when using an array with optional items.
|
| 6423 |
|
| 6424 |
Can also be used as a |method|: >
|
|
|
|
| 6437 |
- Integer keys are accepted in objects, e.g. {1:2} is the
|
| 6438 |
same as {"1":2}.
|
| 6439 |
- More floating point numbers are recognized, e.g. "1." for
|
| 6440 |
+
"1.0", or "001.2" for "1.2". Special floating point values
|
| 6441 |
"Infinity", "-Infinity" and "NaN" (capitalization ignored)
|
| 6442 |
are accepted.
|
| 6443 |
- Leading zeroes in integer numbers are ignored, e.g. "012"
|
|
|
|
| 6700 |
join(map(list, {nr, val -> nr2char(val)}), '')
|
| 6701 |
< |str2list()| does the opposite.
|
| 6702 |
|
| 6703 |
+
When {utf8} is omitted or zero, the current 'encoding' is
|
| 6704 |
+
used.
|
| 6705 |
When {utf8} is TRUE, always return UTF-8 characters.
|
| 6706 |
With UTF-8 composing characters work as expected: >
|
| 6707 |
list2str([97, 769]) returns "á"
|
|
|
|
| 6736 |
listener_add({callback} [, {buf} [, {unbuffered}]]) *listener_add()*
|
| 6737 |
Add a callback function that will be invoked when changes have
|
| 6738 |
been made to buffer {buf}.
|
| 6739 |
+
{buf} refers to a buffer name or number. For the accepted
|
| 6740 |
values, see |bufname()|. When {buf} is omitted the current
|
| 6741 |
buffer is used.
|
| 6742 |
Returns a unique ID that can be passed to |listener_remove()|.
|
|
|
|
| 6802 |
|
| 6803 |
Because of the third trigger reason for triggering a callback
|
| 6804 |
listed above, the line numbers passed to the callback are not
|
| 6805 |
+
guaranteed to be valid. If this is a problem then make
|
| 6806 |
{unbuffered} |TRUE|.
|
| 6807 |
|
| 6808 |
When {unbuffered} is |TRUE| the {callback} is invoked for every
|
| 6809 |
+
single change. The changes list only holds a single
|
| 6810 |
+
dictionary and the "start", "end" and "added" values in the
|
| 6811 |
+
dictionary are the same as the corresponding callback
|
| 6812 |
+
arguments. The line numbers are valid when the callback is
|
| 6813 |
+
invoked, but later changes may make them invalid, thus keeping
|
| 6814 |
+
a copy for later might not work.
|
| 6815 |
|
| 6816 |
The {callback} is invoked with the text locked, see
|
| 6817 |
|textlock|. If you do need to make changes to the buffer, use
|
|
|
|
| 6838 |
Invoke listener callbacks for buffer {buf}. If there are no
|
| 6839 |
pending changes then no callbacks are invoked.
|
| 6840 |
|
| 6841 |
+
{buf} refers to a buffer name or number. For the accepted
|
| 6842 |
values, see |bufname()|. When {buf} is omitted the current
|
| 6843 |
buffer is used.
|
| 6844 |
|
|
|
|
| 6901 |
|
| 6902 |
luaeval({expr} [, {expr}]) *luaeval()*
|
| 6903 |
Evaluate Lua expression {expr} and return its result converted
|
| 6904 |
+
to Vim data structures. Second {expr} may hold additional
|
| 6905 |
argument accessible as _A inside first {expr}.
|
| 6906 |
Strings are returned as they are.
|
| 6907 |
Boolean objects are converted to numbers.
|
|
|
|
| 6938 |
of the current item. For a |Dictionary| |v:key| has the key
|
| 6939 |
of the current item and for a |List| |v:key| has the index of
|
| 6940 |
the current item. For a |Blob| |v:key| has the index of the
|
| 6941 |
+
current byte. For a |String| |v:key| has the index of the
|
| 6942 |
current character.
|
| 6943 |
Example: >
|
| 6944 |
:call map(mylist, '"> " .. v:val .. " <"')
|
|
|
|
| 6956 |
accepts one argument, but with a Vim9 lambda you get "E1106:
|
| 6957 |
One argument too many", the number of arguments must match.
|
| 6958 |
|
| 6959 |
+
The function must return the new value of the item. Example
|
| 6960 |
that changes each value by "key-value": >
|
| 6961 |
func KeyValue(key, val)
|
| 6962 |
return a:key .. '-' .. a:val
|
|
|
|
| 6977 |
or a new |Blob| or |String|.
|
| 6978 |
When an error is encountered while evaluating {expr2} no
|
| 6979 |
further items in {expr1} are processed.
|
| 6980 |
+
When {expr2} is a Funcref errors inside a function are
|
| 6981 |
+
ignored, unless it was defined with the "abort" flag.
|
| 6982 |
|
| 6983 |
Can also be used as a |method|: >
|
| 6984 |
mylist->map(expr2)
|
|
|
|
| 6991 |
When {dict} is omitted or zero: Return the rhs of mapping
|
| 6992 |
{name} in mode {mode}. The returned String has special
|
| 6993 |
characters translated like in the output of the ":map" command
|
| 6994 |
+
listing. When {dict} is TRUE a dictionary is returned, see
|
| 6995 |
+
below. To get a list of all mappings see |maplist()|.
|
| 6996 |
|
| 6997 |
When there is no mapping for {name}, an empty String is
|
| 6998 |
returned if {dict} is FALSE, otherwise returns an empty Dict.
|
|
|
|
| 7031 |
"script" 1 if mapping was defined with <script>.
|
| 7032 |
"expr" 1 for an expression mapping (|:map-<expr>|).
|
| 7033 |
"buffer" 1 for a buffer local mapping (|:map-local|).
|
| 7034 |
+
"mode" Modes for which the mapping is defined. In
|
| 7035 |
addition to the modes mentioned above, these
|
| 7036 |
characters will be used:
|
| 7037 |
" " Normal, Visual and Operator-pending
|
|
|
|
| 7047 |
"abbr" True if this is an abbreviation |abbreviations|.
|
| 7048 |
"mode_bits" Vim's internal binary representation of "mode".
|
| 7049 |
|mapset()| ignores this; only "mode" is used.
|
| 7050 |
+
See |maplist()| for usage examples. The values
|
| 7051 |
are from src/vim.h and may change in the future.
|
| 7052 |
|
| 7053 |
The dictionary can be used to restore a mapping with
|
|
|
|
| 7115 |
echo maplist()->filter(
|
| 7116 |
(_, m) => match(m.rhs, 'MultiMatch') >= 0)
|
| 7117 |
< It can be tricky to find mappings for particular |:map-modes|.
|
| 7118 |
+
|mapping-dict|'s "mode_bits" can simplify this. For example,
|
| 7119 |
the mode_bits for Normal, Insert or Command-line modes are
|
| 7120 |
+
0x19. To find all the mappings available in those modes you
|
| 7121 |
can do: >
|
| 7122 |
vim9script
|
| 7123 |
var saved_maps = []
|
|
|
|
| 7129 |
echo saved_maps->mapnew((_, m) => m.lhs)
|
| 7130 |
< The values of the mode_bits are defined in Vim's src/vim.h
|
| 7131 |
file and they can be discovered at runtime using
|
| 7132 |
+
|:map-commands| and "maplist()". Example: >
|
| 7133 |
vim9script
|
| 7134 |
omap xyzzy <Nop>
|
| 7135 |
var op_bit = maplist()->filter(
|
|
|
|
| 7155 |
Restore a mapping from a dictionary, possibly returned by
|
| 7156 |
|maparg()| or |maplist()|. A buffer mapping, when dict.buffer
|
| 7157 |
is true, is set on the current buffer; it is up to the caller
|
| 7158 |
+
to ensure that the intended buffer is the current buffer.
|
| 7159 |
+
This feature allows copying mappings from one buffer to
|
| 7160 |
+
another.
|
| 7161 |
The dict.mode value may restore a single mapping that covers
|
| 7162 |
more than one mode, like with mode values of '!', ' ', 'nox',
|
| 7163 |
or 'v'. *E1276*
|
|
|
|
| 7296 |
automatically chooses a free ID, which is at least 1000.
|
| 7297 |
|
| 7298 |
The optional {dict} argument allows for further custom
|
| 7299 |
+
values. Currently this is used to specify a match specific
|
| 7300 |
conceal character that will be shown for |hl-Conceal|
|
| 7301 |
+
highlighted matches. The dict can have the following members:
|
| 7302 |
|
| 7303 |
conceal Special character to show instead of the
|
| 7304 |
match (only for |hl-Conceal| highlighted
|
|
|
|
| 7330 |
*matchaddpos()*
|
| 7331 |
matchaddpos({group}, {pos} [, {priority} [, {id} [, {dict}]]])
|
| 7332 |
Same as |matchadd()|, but requires a list of positions {pos}
|
| 7333 |
+
instead of a pattern. This command is faster than |matchadd()|
|
| 7334 |
because it does not handle regular expressions and it sets
|
| 7335 |
+
buffer line boundaries to redraw screen. It is supposed to be
|
| 7336 |
used when fast match additions and deletions are required, for
|
| 7337 |
example to highlight matching parentheses.
|
| 7338 |
|
|
|
|
| 7340 |
these:
|
| 7341 |
- A number. This whole line will be highlighted. The first
|
| 7342 |
line has number 1.
|
| 7343 |
+
- A list with one number, e.g., [23]. The whole line with
|
| 7344 |
+
this number will be highlighted.
|
| 7345 |
+
- A list with two numbers, e.g., [23, 11]. The first number
|
| 7346 |
+
is the line number, the second one is the column number
|
| 7347 |
+
(first column is 1, the value must correspond to the byte
|
| 7348 |
+
index as |col()| would return). The character at this
|
| 7349 |
+
position will be highlighted.
|
| 7350 |
+
- A list with three numbers, e.g., [23, 11, 3]. As above, but
|
| 7351 |
the third number gives the length of the highlight in bytes.
|
| 7352 |
|
| 7353 |
Returns -1 on error.
|
|
|
|
| 7377 |
When there is no match item set returns ['', ''].
|
| 7378 |
This is useful to save and restore a |:match|.
|
| 7379 |
Highlighting matches using the |:match| commands are limited
|
| 7380 |
+
to three matches. |matchadd()| does not have this limitation.
|
| 7381 |
|
| 7382 |
Can also be used as a |method|: >
|
| 7383 |
GetMatch()->matcharg()
|
|
|
|
| 7401 |
text matched string
|
| 7402 |
Note that there can be multiple matches in a single line.
|
| 7403 |
|
| 7404 |
+
This function works only for loaded buffers. First call
|
| 7405 |
|bufload()| if needed.
|
| 7406 |
|
| 7407 |
See |match-pattern| for information about the effect of some
|
|
|
|
| 7478 |
|
| 7479 |
matchfuzzy({list}, {str} [, {dict}]) *matchfuzzy()*
|
| 7480 |
If {list} is a list of strings, then returns a |List| with all
|
| 7481 |
+
the strings in {list} that fuzzy match {str}. The strings in
|
| 7482 |
the returned list are sorted based on the matching score.
|
| 7483 |
|
| 7484 |
The optional {dict} argument always supports the following
|
|
|
|
| 7492 |
If {list} is a list of dictionaries, then the optional {dict}
|
| 7493 |
argument supports the following additional items:
|
| 7494 |
key Key of the item which is fuzzy matched against
|
| 7495 |
+
{str}. The value of this item should be a
|
| 7496 |
string.
|
| 7497 |
text_cb |Funcref| that will be called for every item
|
| 7498 |
in {list} to get the text for fuzzy matching.
|
|
|
|
| 7508 |
then the list of strings that have all the words is returned.
|
| 7509 |
|
| 7510 |
If there are no matching strings or there is an error, then an
|
| 7511 |
+
empty list is returned. If length of {str} is greater than
|
| 7512 |
256, then returns an empty list.
|
| 7513 |
|
| 7514 |
When {limit} is given, matchfuzzy() will find up to this
|
|
|
|
| 7671 |
|
| 7672 |
|
| 7673 |
max({expr}) *max()*
|
| 7674 |
+
Return the maximum value of all items in {expr}. Example: >
|
| 7675 |
echo max([apples, pears, oranges])
|
| 7676 |
|
| 7677 |
< {expr} can be a |List|, a |Tuple| or a |Dictionary|. For a
|
|
|
|
| 7689 |
|
| 7690 |
menu_info({name} [, {mode}]) *menu_info()*
|
| 7691 |
Return information about the specified menu {name} in
|
| 7692 |
+
mode {mode}. The menu name should be specified without the
|
| 7693 |
+
shortcut character ('&'). If {name} is "", then the top-level
|
| 7694 |
menu names are returned.
|
| 7695 |
|
| 7696 |
{mode} can be one of these strings:
|
|
|
|
| 7714 |
icon name of the icon file (for toolbar)
|
| 7715 |
|toolbar-icon|
|
| 7716 |
iconidx index of a built-in icon
|
| 7717 |
+
modes modes for which the menu is defined. In
|
| 7718 |
addition to the modes mentioned above, these
|
| 7719 |
characters will be used:
|
| 7720 |
" " Normal, Visual and Operator-pending
|
|
|
|
| 7722 |
noremenu v:true if the {rhs} of the menu item is not
|
| 7723 |
remappable else v:false.
|
| 7724 |
priority menu order priority |menu-priority|
|
| 7725 |
+
rhs right-hand-side of the menu item. The
|
| 7726 |
+
returned string has special characters
|
| 7727 |
+
translated like in the output of the ":menu"
|
| 7728 |
+
command listing. When the {rhs} of a menu
|
| 7729 |
+
item is empty, then "<Nop>" is returned.
|
| 7730 |
script v:true if script-local remapping of {rhs} is
|
| 7731 |
allowed else v:false. See |:menu-script|.
|
| 7732 |
shortcut shortcut key (character after '&' in
|
|
|
|
| 7881 |
with |remote_expr()| In most other places it always returns
|
| 7882 |
"c" or "n".
|
| 7883 |
Note that in the future more modes and more specific modes may
|
| 7884 |
+
be added. It's better not to compare the whole string but
|
| 7885 |
+
only the leading character(s).
|
| 7886 |
Also see |visualmode()|.
|
| 7887 |
|
| 7888 |
Can also be used as a |method|: >
|
|
|
|
| 7935 |
ngettext({single}, {plural}, {number}[, {domain}) *ngettext()*
|
| 7936 |
Return a string that contains the correct value for a
|
| 7937 |
message based on the rules for plural form(s) in
|
| 7938 |
+
a language. Examples: >
|
| 7939 |
ngettext("File", "Files", 2) # returns "Files"
|
| 7940 |
<
|
| 7941 |
Can be used as a |method|: >
|
|
|
|
| 8009 |
|
| 8010 |
perleval({expr}) *perleval()*
|
| 8011 |
Evaluate Perl expression {expr} in scalar context and return
|
| 8012 |
+
its result converted to Vim data structures. If value can't
|
| 8013 |
+
be converted, it is returned as a string Perl representation.
|
| 8014 |
Note: If you want an array or hash, {expr} must return a
|
| 8015 |
reference to it.
|
| 8016 |
Example: >
|
|
|
|
| 8117 |
% [pos-argument] [flags] [field-width] [.precision] type
|
| 8118 |
|
| 8119 |
pos-argument
|
| 8120 |
+
At most one positional argument specifier. These take
|
| 8121 |
+
the form {n$}, where n is >= 1.
|
| 8122 |
|
| 8123 |
flags
|
| 8124 |
Zero or more of the following flags:
|
|
|
|
| 8194 |
positional argument specifier, and a '*' is used to indicate
|
| 8195 |
that a number argument is to be used to specify the width or
|
| 8196 |
precision, the argument(s) to be used must also be specified
|
| 8197 |
+
using a {n$} positional argument specifier. See |printf-$|.
|
| 8198 |
|
| 8199 |
The conversion specifiers and their meanings are:
|
| 8200 |
|
|
|
|
| 8221 |
The b and B conversion specifiers never take a width
|
| 8222 |
modifier and always assume their argument is a 64 bit
|
| 8223 |
integer.
|
| 8224 |
+
Generally, these modifiers are not useful. They are
|
| 8225 |
ignored when type is known from the argument.
|
| 8226 |
|
| 8227 |
i alias for d
|
|
|
|
| 8293 |
*printf-$*
|
| 8294 |
In certain languages, error and informative messages are
|
| 8295 |
more readable when the order of words is different from the
|
| 8296 |
+
corresponding message in English. To accommodate translations
|
| 8297 |
having a different word order, positional arguments may be
|
| 8298 |
+
used to indicate this. For instance: >
|
| 8299 |
|
| 8300 |
#, c-format
|
| 8301 |
msgid "%s returning %s"
|
|
|
|
| 8314 |
"Bram", "Moolenaar")
|
| 8315 |
< In Belgium, vim's creator's name is: Moolenaar Bram
|
| 8316 |
|
| 8317 |
+
Width (and precision) can be specified using the '*'
|
| 8318 |
+
specifier. In this case, you must specify the field width
|
| 8319 |
+
position in the argument list. >
|
| 8320 |
|
| 8321 |
echo printf("%1$*2$.*3$d", 1, 2, 3)
|
| 8322 |
< 001 >
|
|
|
|
| 8516 |
Evaluate Python expression {expr} and return its result
|
| 8517 |
converted to Vim data structures.
|
| 8518 |
If a {locals} |Dictionary| is given, it defines set of local
|
| 8519 |
+
variables available in the expression. The keys are variable
|
| 8520 |
+
names and the values are the variable values. |Dictionary|,
|
| 8521 |
|List| and |Tuple| values are referenced, and may be updated
|
| 8522 |
by the expression (as if |python-bindeval| was used).
|
| 8523 |
Numbers and strings are returned as they are (strings are
|
|
|
|
| 8667 |
readdir(dirname, {n -> n !~ '^\.\|\~$'})
|
| 8668 |
< *E857*
|
| 8669 |
The optional {dict} argument allows for further custom
|
| 8670 |
+
values. Currently this is used to specify if and how sorting
|
| 8671 |
+
should be performed. The dict can have the following members:
|
| 8672 |
|
| 8673 |
sort How to sort the result returned from the system.
|
| 8674 |
Valid values are:
|
|
|
|
| 8719 |
following items:
|
| 8720 |
group Group name of the entry. (Only on Unix)
|
| 8721 |
name Name of the entry.
|
| 8722 |
+
perm Permissions of the entry. See |getfperm()|.
|
| 8723 |
+
size Size of the entry. See |getfsize()|.
|
| 8724 |
+
time Timestamp of the entry. See |getftime()|.
|
| 8725 |
type Type of the entry.
|
| 8726 |
On Unix, almost same as |getftype()| except:
|
| 8727 |
Symlink to a dir "linkd"
|
|
|
|
| 8903 |
call MyFunction()
|
| 8904 |
echo reltimestr(reltime(start))
|
| 8905 |
< Note that overhead for the commands will be added to the time.
|
| 8906 |
+
The accuracy depends on the system. Use reltimefloat() for
|
| 8907 |
+
the greatest accuracy which is nanoseconds on some systems.
|
| 8908 |
Leading spaces are used to make the string align nicely. You
|
| 8909 |
can use split() to remove it. >
|
| 8910 |
echo split(reltimestr(reltime(start)))[0]
|
|
|
|
| 9144 |
On MS-Windows, when {filename} is a shortcut (a .lnk file),
|
| 9145 |
returns the path the shortcut points to in a simplified form.
|
| 9146 |
When {filename} is a symbolic link or junction point, return
|
| 9147 |
+
the full path to the target. If the target of junction is
|
| 9148 |
removed, return {filename}.
|
| 9149 |
On Unix, repeat resolving symbolic links in all path
|
| 9150 |
components of {filename} and return the simplified result.
|
|
|
|
| 9261 |
|
| 9262 |
screencol() *screencol()*
|
| 9263 |
The result is a Number, which is the current screen column of
|
| 9264 |
+
the cursor. The leftmost column has number 1.
|
| 9265 |
This function is mainly used for testing.
|
| 9266 |
|
| 9267 |
Note: Always returns the current screen column, thus if used
|
| 9268 |
in a command (e.g. ":echo screencol()") it will return the
|
| 9269 |
column inside the command line, which is 1 when the command is
|
| 9270 |
+
executed. To get the cursor position in the file use one of
|
| 9271 |
the following mappings: >
|
| 9272 |
nnoremap <expr> GG ":echom " .. screencol() .. "\n"
|
| 9273 |
nnoremap <silent> GG :echom screencol()<CR>
|
|
|
|
| 9353 |
If neither 'w' or 'W' is given, the 'wrapscan' option applies.
|
| 9354 |
|
| 9355 |
If the 's' flag is supplied, the ' mark is set, only if the
|
| 9356 |
+
cursor is moved. The 's' flag cannot be combined with the 'n'
|
| 9357 |
flag.
|
| 9358 |
|
| 9359 |
'ignorecase', 'smartcase' and 'magic' are used.
|
|
|
|
| 9448 |
without the "S" flag in 'shortmess'. This works even if
|
| 9449 |
'shortmess' does contain the "S" flag.
|
| 9450 |
|
| 9451 |
+
This returns a |Dictionary|. The dictionary is empty if the
|
| 9452 |
previous pattern was not set and "pattern" was not specified.
|
| 9453 |
|
| 9454 |
key type meaning ~
|
|
|
|
| 9465 |
For {options} see further down.
|
| 9466 |
|
| 9467 |
To get the last search count when |n| or |N| was pressed, call
|
| 9468 |
+
this function with `recompute: 0` . This sometimes returns
|
| 9469 |
wrong information because of 'maxsearchcount'.
|
| 9470 |
If the count exceeded 'maxsearchcount', the result must be
|
| 9471 |
+
'maxsearchcount' + 1. If you want to get correct information,
|
| 9472 |
specify `recompute: 1`: >
|
| 9473 |
|
| 9474 |
" result == 'maxsearchcount' + 1 when many matches
|
|
|
|
| 9531 |
" search again
|
| 9532 |
call searchcount()
|
| 9533 |
<
|
| 9534 |
+
{options} must be a |Dictionary|. It can contain:
|
| 9535 |
key type meaning ~
|
| 9536 |
recompute |Boolean| if |TRUE|, recompute the count
|
| 9537 |
like |n| or |N| was executed.
|
|
|
|
| 9689 |
searchpairpos({start}, {middle}, {end} [, {flags} [, {skip}
|
| 9690 |
[, {stopline} [, {timeout}]]]])
|
| 9691 |
Same as |searchpair()|, but returns a |List| with the line and
|
| 9692 |
+
column position of the match. The first element of the |List|
|
| 9693 |
is the line number and the second element is the byte index of
|
| 9694 |
the column position of the match. If no match is found,
|
| 9695 |
returns [0, 0]. >
|
|
|
|
| 9703 |
*searchpos()*
|
| 9704 |
searchpos({pattern} [, {flags} [, {stopline} [, {timeout} [, {skip}]]]])
|
| 9705 |
Same as |search()|, but returns a |List| with the line and
|
| 9706 |
+
column position of the match. The first element of the |List|
|
| 9707 |
is the line number and the second element is the byte index of
|
| 9708 |
+
the column position of the match. If no match is found,
|
| 9709 |
returns [0, 0].
|
| 9710 |
Example: >
|
| 9711 |
:let [lnum, col] = searchpos('mypattern', 'n')
|
|
|
|
| 9756 |
Set line {lnum} to {text} in buffer {buf}. This works like
|
| 9757 |
|setline()| for the specified buffer.
|
| 9758 |
|
| 9759 |
+
This function works only for loaded buffers. First call
|
| 9760 |
|bufload()| if needed.
|
| 9761 |
|
| 9762 |
To insert lines use |appendbufline()|.
|
|
|
|
| 9979 |
|
| 9980 |
setline({lnum}, {text}) *setline()*
|
| 9981 |
Set line {lnum} of the current buffer to {text}. To insert
|
| 9982 |
+
lines use |append()|. To set lines in another buffer use
|
| 9983 |
|setbufline()|.
|
| 9984 |
Any text properties in {lnum} are cleared. See
|
| 9985 |
|text-prop-cleared|
|
|
|
|
| 9991 |
converted to a String. When {text} is an empty List then
|
| 9992 |
nothing is changed and FALSE is returned.
|
| 9993 |
|
| 9994 |
+
If this succeeds, FALSE is returned. If this fails (most
|
| 9995 |
+
likely because {lnum} is invalid) TRUE is returned.
|
| 9996 |
In |Vim9| script an error is given if {lnum} is invalid.
|
| 9997 |
|
| 9998 |
Example: >
|
|
|
|
| 10028 |
For {action} see |setqflist-action|.
|
| 10029 |
|
| 10030 |
If the optional {what} dictionary argument is supplied, then
|
| 10031 |
+
only the items listed in {what} are set. Refer to |setqflist()|
|
| 10032 |
for the list of supported keys in {what}.
|
| 10033 |
|
| 10034 |
Can also be used as a |method|, the base is passed as the
|
|
|
|
| 10072 |
|
| 10073 |
"lnum" and "col" are the position in the buffer. The first
|
| 10074 |
column is 1. Use a zero "lnum" to delete a mark. If "col" is
|
| 10075 |
+
smaller than 1 then 1 is used. To use the character count
|
| 10076 |
instead of the byte count, use |setcharpos()|.
|
| 10077 |
|
| 10078 |
+
The "off" number is only used when 'virtualedit' is set. Then
|
| 10079 |
it is the offset in screen columns from the start of the
|
| 10080 |
character. E.g., a position within a <Tab> or after the last
|
| 10081 |
character.
|
|
|
|
| 10111 |
Create or replace or add to the quickfix list.
|
| 10112 |
|
| 10113 |
If the optional {what} dictionary argument is supplied, then
|
| 10114 |
+
only the items listed in {what} are set. The first {list}
|
| 10115 |
argument is ignored. See below for the supported items in
|
| 10116 |
{what}.
|
| 10117 |
*setqflist-what*
|
| 10118 |
+
When {what} is not present, the items in {list} are used.
|
| 10119 |
+
Each item must be a dictionary. Non-dictionary items in
|
| 10120 |
+
{list} are ignored. Each dictionary item can contain the
|
| 10121 |
+
following entries:
|
| 10122 |
|
| 10123 |
bufnr buffer number; must be the number of a valid
|
| 10124 |
buffer
|
|
|
|
| 10157 |
|
| 10158 |
{action} values: *setqflist-action* *E927*
|
| 10159 |
'a' The items from {list} are added to the existing
|
| 10160 |
+
quickfix list. If there is no existing list, then a
|
| 10161 |
new list is created.
|
| 10162 |
|
| 10163 |
'r' The items from the current quickfix list are replaced
|
|
|
|
| 10171 |
freed.
|
| 10172 |
|
| 10173 |
If {action} is not present or is set to ' ', then a new list
|
| 10174 |
+
is created. The new quickfix list is added after the current
|
| 10175 |
quickfix list in the stack and all the following lists are
|
| 10176 |
+
freed. To add a new quickfix list at the end of the stack,
|
| 10177 |
set "nr" in {what} to "$".
|
| 10178 |
|
| 10179 |
The following items can be specified in dictionary {what}:
|
| 10180 |
+
context quickfix list context. See |quickfix-context|
|
| 10181 |
efm errorformat to use when parsing text from
|
| 10182 |
+
"lines". If this is not present, then the
|
| 10183 |
'errorformat' option value is used.
|
| 10184 |
See |quickfix-parse|
|
| 10185 |
id quickfix list identifier |quickfix-ID|
|
| 10186 |
idx index of the current entry in the quickfix
|
| 10187 |
+
list specified by 'id' or 'nr'. If set to
|
| 10188 |
+
'$', then the last entry in the list is set as
|
| 10189 |
+
the current entry. See |quickfix-index|
|
| 10190 |
+
items list of quickfix entries. Same as the {list}
|
| 10191 |
argument.
|
| 10192 |
lines use 'errorformat' to parse a list of lines and
|
| 10193 |
add the resulting entries to the quickfix list
|
|
|
|
| 10202 |
a function or a funcref or a lambda. Refer to
|
| 10203 |
|quickfix-window-function| for an explanation
|
| 10204 |
of how to write the function and an example.
|
| 10205 |
+
title quickfix list title text. See |quickfix-title|
|
| 10206 |
Unsupported keys in {what} are ignored.
|
| 10207 |
+
If the "nr" item is not present, then the current quickfix
|
| 10208 |
+
list is modified. When creating a new quickfix list, "nr" can
|
| 10209 |
+
be set to a value one greater than the quickfix stack size.
|
| 10210 |
When modifying a quickfix list, to guarantee that the correct
|
| 10211 |
list is modified, "id" should be used instead of "nr" to
|
| 10212 |
specify the list.
|
|
|
|
| 10251 |
|
| 10252 |
If {options} contains no register settings, then the default
|
| 10253 |
is to use character mode unless {value} ends in a <NL> for
|
| 10254 |
+
string {value} and linewise mode for list {value}. Blockwise
|
| 10255 |
mode is never selected automatically.
|
| 10256 |
Returns zero for success, non-zero for failure.
|
| 10257 |
|
| 10258 |
*E883*
|
| 10259 |
Note: you may not use |List| containing more than one item to
|
| 10260 |
+
set search and expression registers. Lists containing
|
| 10261 |
+
no items act like empty strings.
|
| 10262 |
|
| 10263 |
Examples: >
|
| 10264 |
:call setreg(v:register, @*)
|
|
|
|
| 10338 |
{nr} can be the window number or the |window-ID|.
|
| 10339 |
|
| 10340 |
For a list of supported items in {dict}, refer to
|
| 10341 |
+
|gettagstack()|. "curidx" takes effect before changing the tag
|
| 10342 |
stack.
|
| 10343 |
*E962*
|
| 10344 |
How the tag stack is modified depends on the {action}
|
|
|
|
| 10412 |
replace all "'" with "'\''".
|
| 10413 |
|
| 10414 |
The {special} argument adds additional escaping of keywords
|
| 10415 |
+
used in Vim commands. When it is not omitted and a non-zero
|
| 10416 |
number or a non-empty String (|non-zero-arg|), then special
|
| 10417 |
items such as "!", "%", "#" and "<cword>" (as listed in
|
| 10418 |
|expand()|) will be preceded by a backslash.
|
|
|
|
| 10428 |
escaped a second time.
|
| 10429 |
|
| 10430 |
The "\" character will be escaped when 'shell' contains "fish"
|
| 10431 |
+
in the tail. That is because for fish "\" is used as an
|
| 10432 |
+
escape character inside single quotes.
|
| 10433 |
|
| 10434 |
Example of use with a |:!| command: >
|
| 10435 |
:exe '!dir ' .. shellescape(expand('<cfile>'), 1)
|
|
|
|
| 10445 |
|
| 10446 |
|
| 10447 |
shiftwidth([{col}]) *shiftwidth()*
|
| 10448 |
+
Returns the effective value of 'shiftwidth'. This is the
|
| 10449 |
'shiftwidth' value unless it is zero, in which case it is the
|
| 10450 |
'tabstop' value. This function was introduced with patch
|
| 10451 |
7.3.694 in 2012, everybody should have it by now (however it
|
| 10452 |
did not allow for the optional {col} argument until 8.1.542).
|
| 10453 |
|
| 10454 |
When there is one argument {col} this is used as column number
|
| 10455 |
+
for which to return the 'shiftwidth' value. This matters for
|
| 10456 |
+
the 'vartabstop' feature. If the 'vartabstop' setting is
|
| 10457 |
+
enabled and no {col} argument is given, column 1 will be
|
| 10458 |
+
assumed.
|
| 10459 |
|
| 10460 |
Can also be used as a |method|: >
|
| 10461 |
GetColumn()->shiftwidth()
|
|
|
|
| 10471 |
Unix) are not resolved. If the first path component in
|
| 10472 |
{filename} designates the current directory, this will be
|
| 10473 |
valid for the result as well. A trailing path separator is
|
| 10474 |
+
not removed either. On Unix "//path" is unchanged, but
|
| 10475 |
"///path" is simplified to "/path" (this follows the Posix
|
| 10476 |
standard).
|
| 10477 |
Example: >
|
|
|
|
| 10553 |
can be used to ignore case. Zero means to not ignore case.
|
| 10554 |
|
| 10555 |
When {how} is given and it is 'l' then the current collation
|
| 10556 |
+
locale is used for ordering. Implementation details:
|
| 10557 |
+
strcoll() is used to compare strings. See |:language| check
|
| 10558 |
+
or set the collation locale. |v:collate| can also be used to
|
| 10559 |
+
check the current locale. Sorting using the locale typically
|
| 10560 |
+
ignores case. Example: >
|
| 10561 |
" ö is sorted similarly to o with English locale.
|
| 10562 |
:language collate en_US.UTF8
|
| 10563 |
:echo sort(['n', 'o', 'O', 'ö', 'p', 'z'], 'l')
|
|
|
|
| 10576 |
sort a list of strings with numbers!
|
| 10577 |
|
| 10578 |
When {how} is given and it is 'N' then all items will be
|
| 10579 |
+
sorted numerical. This is like 'n' but a string containing
|
| 10580 |
digits will be used as the number they represent.
|
| 10581 |
|
| 10582 |
When {how} is given and it is 'f' then all items will be
|
| 10583 |
+
sorted numerical. All values must be a Number or a Float.
|
| 10584 |
|
| 10585 |
When {how} is a |Funcref| or a function name, this function
|
| 10586 |
is called to compare items. The function is invoked with two
|
|
|
|
| 10592 |
used to set the local variable "self". |Dictionary-function|
|
| 10593 |
|
| 10594 |
The sort is stable, items which compare equal (as number or as
|
| 10595 |
+
string) will keep their relative position. E.g., when sorting
|
| 10596 |
on numbers, text strings will sort next to each other, in the
|
| 10597 |
same order as they were originally.
|
| 10598 |
|
|
|
|
| 10688 |
package, otherwise sound may not stop.
|
| 10689 |
|
| 10690 |
On MS-Windows, this does not work for event sound started by
|
| 10691 |
+
`sound_playevent()`. To stop event sounds, use `sound_clear()`.
|
| 10692 |
|
| 10693 |
Can also be used as a |method|: >
|
| 10694 |
soundid->sound_stop()
|
|
|
|
| 10774 |
empty each white space separated sequence of characters
|
| 10775 |
becomes an item.
|
| 10776 |
Otherwise the string is split where {pattern} matches,
|
| 10777 |
+
removing the matched characters. 'ignorecase' is not used
|
| 10778 |
here, add \c to ignore case. |/\c|
|
| 10779 |
When the first or last item is empty it is omitted, unless the
|
| 10780 |
{keepempty} argument is given and it's non-zero.
|
|
|
|
| 10942 |
str2list("ABC") returns [65, 66, 67]
|
| 10943 |
< |list2str()| does the opposite.
|
| 10944 |
|
| 10945 |
+
When {utf8} is omitted or zero, the current 'encoding' is
|
| 10946 |
+
used.
|
| 10947 |
When {utf8} is TRUE, always treat the String as UTF-8
|
| 10948 |
characters. With UTF-8 composing characters are handled
|
| 10949 |
properly: >
|
|
|
|
| 11061 |
matters for anything that's displayed differently, such as
|
| 11062 |
'tabstop' and 'display'.
|
| 11063 |
When {string} contains characters with East Asian Width Class
|
| 11064 |
+
Ambiguous, this function's return value depends on
|
| 11065 |
+
'ambiwidth'.
|
| 11066 |
Returns zero on error.
|
| 11067 |
Also see |strlen()|, |strwidth()| and |strchars()|.
|
| 11068 |
|
|
|
|
| 11320 |
String {string} occupies. A Tab character is counted as one
|
| 11321 |
cell, alternatively use |strdisplaywidth()|.
|
| 11322 |
When {string} contains characters with East Asian Width Class
|
| 11323 |
+
Ambiguous, this function's return value depends on
|
| 11324 |
+
'ambiwidth'.
|
| 11325 |
Returns zero on error.
|
| 11326 |
Also see |strlen()|, |strdisplaywidth()| and |strchars()|.
|
| 11327 |
|
|
|
|
| 11394 |
< results in "TESTING".
|
| 11395 |
|
| 11396 |
When {sub} starts with "\=", the remainder is interpreted as
|
| 11397 |
+
an expression. See |sub-replace-expression|. Example: >
|
| 11398 |
:echo substitute(s, '%\(\x\x\)',
|
| 11399 |
\ '\=nr2char("0x" .. submatch(1))', 'g')
|
| 11400 |
|
|
|
|
| 11430 |
|
| 11431 |
swapinfo({fname}) *swapinfo()*
|
| 11432 |
The result is a dictionary, which holds information about the
|
| 11433 |
+
swapfile {fname}. The available fields are:
|
| 11434 |
version Vim version
|
| 11435 |
user user name
|
| 11436 |
host host name
|
|
|
|
| 11559 |
1. The first item in the list is 0 if the character at the
|
| 11560 |
position {lnum} and {col} is not part of a concealable
|
| 11561 |
region, 1 if it is. {lnum} is used like with |getline()|.
|
| 11562 |
+
2. The second item in the list is a string. If the first item
|
| 11563 |
is 1, the second item contains the text which will be
|
| 11564 |
displayed in place of the concealed text, depending on the
|
| 11565 |
current setting of 'conceallevel' and 'listchars'.
|
| 11566 |
3. The third and final item in the list is a number
|
| 11567 |
representing the specific syntax region matched in the
|
| 11568 |
+
line. When the character is not concealed the value is
|
| 11569 |
+
zero. This allows detection of the beginning of a new
|
| 11570 |
concealable region if there are two consecutive regions
|
| 11571 |
with the same replacement character. For an example, if
|
| 11572 |
the text is "123456" and both "23" and "45" are concealed
|
|
|
|
| 11676 |
|
| 11677 |
systemlist({expr} [, {input}]) *systemlist()*
|
| 11678 |
Same as |system()|, but returns a |List| with lines (parts of
|
| 11679 |
+
output separated by NL) with NULs transformed into NLs.
|
| 11680 |
+
Output is the same as |readfile()| will output with {binary}
|
| 11681 |
+
argument set to "b", except that there is no extra empty item
|
| 11682 |
+
when the result ends in a NL.
|
| 11683 |
Note that on MS-Windows you may get trailing CR characters.
|
| 11684 |
|
| 11685 |
To see the difference between "echo hello" and "echo -n hello"
|
|
|
|
| 11697 |
tabpagebuflist([{arg}]) *tabpagebuflist()*
|
| 11698 |
The result is a |List|, where each item is the number of the
|
| 11699 |
buffer associated with each window in the current tab page.
|
| 11700 |
+
{arg} specifies the number of the tab page to be used. When
|
| 11701 |
omitted the current tab page is used.
|
| 11702 |
When {arg} is invalid the number zero is returned.
|
| 11703 |
To get a list of all buffers in all tabs use this: >
|
|
|
|
| 11760 |
Returns a |List| of tags matching the regular expression {expr}.
|
| 11761 |
|
| 11762 |
If {filename} is passed it is used to prioritize the results
|
| 11763 |
+
in the same way that |:tselect| does. See |tag-priority|.
|
| 11764 |
{filename} should be the full path of the file.
|
| 11765 |
|
| 11766 |
Each list item is a dictionary with at least the following
|
|
|
|
| 11796 |
search regular expression pattern.
|
| 11797 |
|
| 11798 |
Refer to 'tags' for information about how the tags file is
|
| 11799 |
+
located by Vim. Refer to |tags-file-format| for the format of
|
| 11800 |
the tags file generated by the different ctags tools.
|
| 11801 |
|
| 11802 |
Can also be used as a |method|: >
|
|
|
|
| 11949 |
timer_start({time}, {callback} [, {options}])
|
| 11950 |
Create a timer and return the timer ID.
|
| 11951 |
|
| 11952 |
+
{time} is the waiting time in milliseconds. This is the
|
| 11953 |
minimum time before invoking the callback. When the system is
|
| 11954 |
busy or Vim is not waiting for input the time will be longer.
|
| 11955 |
Zero can be used to execute the callback when Vim is back in
|
|
|
|
| 12327 |
downwards to the beginning of that sequence.
|
| 12328 |
|
| 12329 |
Returns -1 if the arguments are invalid or if there are less
|
| 12330 |
+
than {idx} bytes in {string}. If there are exactly {idx}
|
| 12331 |
+
bytes the length of the string in UTF-16 code units is
|
| 12332 |
+
returned.
|
| 12333 |
|
| 12334 |
See |byteidx()| and |byteidxcomp()| for getting the byte index
|
| 12335 |
from the UTF-16 index and |charidx()| for getting the
|
|
|
|
| 12368 |
the character at that position. When there is a <Tab> at the
|
| 12369 |
position, the returned Number will be the column at the end of
|
| 12370 |
the <Tab>. For example, for a <Tab> in column 1, with 'ts'
|
| 12371 |
+
set to 8, it returns 8. |conceal| is ignored.
|
| 12372 |
For the byte position use |col()|.
|
| 12373 |
|
| 12374 |
For the use of {expr} see |getpos()| and |col()|.
|
|
|
|
| 12430 |
byte in the character is returned.
|
| 12431 |
|
| 12432 |
The {winid} argument can be the window number or the
|
| 12433 |
+
|window-ID|. If this is zero, then the current window is used.
|
| 12434 |
|
| 12435 |
Returns -1 if the window {winid} doesn't exist or the buffer
|
| 12436 |
line {lnum} or virtual column {col} is invalid.
|
|
|
|
| 12468 |
Returns |TRUE| when the wildmenu is active and |FALSE|
|
| 12469 |
otherwise. See 'wildmenu' and 'wildmode'.
|
| 12470 |
This can be used in mappings to handle the 'wildcharm' option
|
| 12471 |
+
gracefully. (Makes only sense with |mapmode-c| mappings).
|
| 12472 |
|
| 12473 |
For example to make <c-j> work like <down> in wildmode, use: >
|
| 12474 |
:cnoremap <expr> <C-j> wildmenumode() ? "\<Down>\<Tab>" : "\<c-j>"
|
|
|
|
| 12551 |
|
| 12552 |
win_gettype([{nr}]) *win_gettype()*
|
| 12553 |
Return the type of the window:
|
| 12554 |
+
"autocmd" autocommand window. Temporary window
|
| 12555 |
used to execute autocommands.
|
| 12556 |
"command" command-line window |cmdwin|
|
| 12557 |
(empty) normal window
|
|
|
|
| 12609 |
|
| 12610 |
win_move_separator({nr}, {offset}) *win_move_separator()*
|
| 12611 |
Move window {nr}'s vertical separator (i.e., the right border)
|
| 12612 |
+
by {offset} columns, as if being dragged by the mouse. {nr}
|
| 12613 |
+
can be a window number or |window-ID|. A positive {offset}
|
| 12614 |
+
moves right and a negative {offset} moves left. Moving a
|
| 12615 |
window's vertical separator will change the width of the
|
| 12616 |
window and the width of other windows adjacent to the vertical
|
| 12617 |
+
separator. The magnitude of movement may be smaller than
|
| 12618 |
specified (e.g., as a consequence of maintaining
|
| 12619 |
+
'winminwidth'). Returns TRUE if the window can be found and
|
| 12620 |
FALSE otherwise.
|
| 12621 |
This will fail for the rightmost window and a full-width
|
| 12622 |
window, since it has no separator on the right.
|
|
|
|
| 12630 |
|
| 12631 |
win_move_statusline({nr}, {offset}) *win_move_statusline()*
|
| 12632 |
Move window {nr}'s status line (i.e., the bottom border) by
|
| 12633 |
+
{offset} rows, as if being dragged by the mouse. {nr} can be
|
| 12634 |
+
a window number or |window-ID|. A positive {offset} moves
|
| 12635 |
+
down and a negative {offset} moves up. Moving a window's
|
| 12636 |
+
status line will change the height of the window and the
|
| 12637 |
+
height of other windows adjacent to the status line. The
|
| 12638 |
+
magnitude of movement may be smaller than specified (e.g., as
|
| 12639 |
+
a consequence of maintaining 'winminheight'). Returns TRUE if
|
| 12640 |
+
the window can be found and FALSE otherwise.
|
| 12641 |
Only works for the current tab page.
|
| 12642 |
|
| 12643 |
Can also be used as a |method|: >
|
|
|
|
| 12740 |
in a tabpage.
|
| 12741 |
|
| 12742 |
Without {tabnr} use the current tabpage, otherwise the tabpage
|
| 12743 |
+
with number {tabnr}. If the tabpage {tabnr} is not found,
|
| 12744 |
returns an empty list.
|
| 12745 |
|
| 12746 |
For a leaf window, it returns:
|
|
|
|
| 12835 |
Uses the |Dictionary| returned by |winsaveview()| to restore
|
| 12836 |
the view of the current window.
|
| 12837 |
Note: The {dict} does not have to contain all values, that are
|
| 12838 |
+
returned by |winsaveview()|. If values are missing, those
|
| 12839 |
+
settings won't be restored. So you can use: >
|
| 12840 |
:call winrestview({'curswant': 4})
|
| 12841 |
<
|
| 12842 |
This will only set the curswant value (the column the cursor
|
| 12843 |
wants to move on vertical movements) of the cursor to column 5
|
| 12844 |
(yes, that is 5), while all other settings will remain the
|
| 12845 |
+
same. This is useful, if you set the cursor position
|
| 12846 |
+
manually.
|
| 12847 |
|
| 12848 |
If you have changed the values the result is unpredictable.
|
| 12849 |
If the window size changed the result won't be the same.
|
|
|
|
| 12862 |
buffer and you want to go back to the original view.
|
| 12863 |
This does not save fold information. Use the 'foldenable'
|
| 12864 |
option to temporarily switch off folding, so that folds are
|
| 12865 |
+
not opened when moving around. This may have side effects.
|
| 12866 |
The return value includes:
|
| 12867 |
lnum cursor line number
|
| 12868 |
col cursor column (Note: the first column
|
|
|
|
| 13251 |
xpm_w32 Compiled with pixmap support for Win32. (Only for
|
| 13252 |
backward compatibility. Use "xpm" instead.)
|
| 13253 |
xsmp Compiled with X session management support.
|
| 13254 |
+
xsmp_interact Compiled with interactive X session management
|
| 13255 |
+
support.
|
| 13256 |
xterm_clipboard Compiled with support for xterm clipboard.
|
| 13257 |
xterm_save Compiled with support for saving and restoring the
|
| 13258 |
xterm screen.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*change.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -101,7 +101,7 @@ An exception for the d{motion} command: If the motion is not linewise, the
|
|
| 101 |
start and end of the motion are not in the same line, and there are only
|
| 102 |
blanks before the start and there are no non-blanks after the end of the
|
| 103 |
motion, the delete becomes linewise. This means that the delete also removes
|
| 104 |
-
the line of blanks that you might expect to remain.
|
| 105 |
force the motion to be characterwise or remove the "z" flag from 'cpoptions'
|
| 106 |
(see |cpo-z|) to disable this peculiarity.
|
| 107 |
|
|
@@ -382,7 +382,7 @@ CTRL-A Add [count] to the number or alphabetic character at
|
|
| 382 |
|
| 383 |
*v_g_CTRL-A*
|
| 384 |
{Visual}g CTRL-A Add [count] to the number or alphabetic character in
|
| 385 |
-
the highlighted text.
|
| 386 |
highlighted, each one will be incremented by an
|
| 387 |
additional [count] (so effectively creating a
|
| 388 |
[count] incrementing sequence).
|
|
@@ -413,7 +413,7 @@ CTRL-X Subtract [count] from the number or alphabetic
|
|
| 413 |
<
|
| 414 |
*v_g_CTRL-X*
|
| 415 |
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
|
| 416 |
-
character in the highlighted text.
|
| 417 |
are highlighted, each value will be decremented by an
|
| 418 |
additional [count] (so effectively creating a [count]
|
| 419 |
decrementing sequence).
|
|
@@ -866,7 +866,7 @@ the |substitute()| function with the following exceptions:
|
|
| 866 |
- magic is always set without regard to 'magic'.
|
| 867 |
- A ~ inserts a tilde literally.
|
| 868 |
- <CR> and \r inserts a carriage-return (CTRL-M).
|
| 869 |
-
- \<CR> does not have a special meaning.
|
| 870 |
|
| 871 |
Examples: >
|
| 872 |
:s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx"
|
|
@@ -878,7 +878,7 @@ Examples: >
|
|
| 878 |
|
| 879 |
Note: "\L\u" can be used to capitalize the first letter of a word. This is
|
| 880 |
not compatible with Vi and older versions of Vim, where the "\u" would cancel
|
| 881 |
-
out the "\L".
|
| 882 |
|
| 883 |
Note: In previous versions CTRL-V was handled in a special way. Since this is
|
| 884 |
not Vi compatible, this was removed. Use a backslash instead.
|
|
@@ -950,7 +950,7 @@ real <NL> character (which will be a NUL in the file).
|
|
| 950 |
|
| 951 |
The "\=" notation can also be used inside the third argument {sub} of
|
| 952 |
|substitute()| function. In this case, the special meaning for characters as
|
| 953 |
-
mentioned at |sub-replace-special| does not apply at all.
|
| 954 |
<NL> are interpreted not as a line break but as a carriage-return and a
|
| 955 |
new-line respectively.
|
| 956 |
|
|
@@ -1092,7 +1092,7 @@ inside of strings can change! Also see 'softtabstop' option. >
|
|
| 1092 |
with `zp`. (for {Visual} see |Visual-mode|)
|
| 1093 |
|
| 1094 |
*:y* *:yank* *E850*
|
| 1095 |
-
:[range]y[ank] [x] Yank [range] lines [into register x].
|
| 1096 |
"* or "+ registers is possible only when the
|
| 1097 |
|+clipboard| feature is included.
|
| 1098 |
|
|
@@ -1173,9 +1173,9 @@ inside of strings can change! Also see 'softtabstop' option. >
|
|
| 1173 |
or 'a'.
|
| 1174 |
|
| 1175 |
["x]zp or *zp* *zP*
|
| 1176 |
-
["x]zP Like "p" and "P", except without adding trailing
|
| 1177 |
-
when pasting a block. Thus the inserted text
|
| 1178 |
-
always be a rectangle. Especially useful in
|
| 1179 |
combination with |v_zy|.
|
| 1180 |
|
| 1181 |
You can use these commands to copy text from one place to another. Do this
|
|
@@ -1210,7 +1210,7 @@ With |p| the previously selected text is put in the unnamed register (and
|
|
| 1210 |
possibly the selection and/or clipboard). This is useful if you want to put
|
| 1211 |
that text somewhere else. But you cannot repeat the same change.
|
| 1212 |
With |P| the unnamed register is not changed (and neither the selection or
|
| 1213 |
-
clipboard), you can repeat the same change.
|
| 1214 |
used. If you do need it you can use |p| with another register. E.g., yank
|
| 1215 |
the text to copy, Visually select the text to replace and use "0p . You can
|
| 1216 |
repeat this as many times as you like, and the unnamed register will be
|
|
@@ -1291,8 +1291,8 @@ text is less than one line (the small delete register is used then). An
|
|
| 1291 |
exception is made for the delete operator with these movement commands: |%|,
|
| 1292 |
|(|, |)|, |`|, |/|, |?|, |n|, |N|, |{| and |}|.
|
| 1293 |
Register "1 is always used then (this is Vi compatible). The "- register is
|
| 1294 |
-
used as well if the delete is within a line.
|
| 1295 |
-
mapped. E.g. |%| is mapped by the matchit plugin.
|
| 1296 |
With each successive deletion or change, Vim shifts the previous contents
|
| 1297 |
of register 1 into register 2, 2 into 3, and so forth, losing the previous
|
| 1298 |
contents of register 9.
|
|
@@ -1608,11 +1608,11 @@ type of comment string. A part consists of:
|
|
| 1608 |
|
| 1609 |
e End of a three-piece comment
|
| 1610 |
|
| 1611 |
-
l Left align.
|
| 1612 |
start or end will line up with the leftmost character from the middle.
|
| 1613 |
-
This is the default and can be omitted.
|
| 1614 |
|
| 1615 |
-
r Right align.
|
| 1616 |
below for more details.
|
| 1617 |
|
| 1618 |
O Don't consider this comment for the "O" command.
|
|
@@ -1624,8 +1624,8 @@ type of comment string. A part consists of:
|
|
| 1624 |
|
| 1625 |
{digits}
|
| 1626 |
When together with 's' or 'e': add {digit} amount of offset to an
|
| 1627 |
-
automatically inserted middle or end comment leader.
|
| 1628 |
-
from a left alignment.
|
| 1629 |
|
| 1630 |
-{digits}
|
| 1631 |
Like {digits} but reduce the indent. This only works when there is
|
|
@@ -1664,7 +1664,7 @@ part which is longer, the end part is used. This makes a C style comment work
|
|
| 1664 |
without requiring the middle part to end with a space.
|
| 1665 |
|
| 1666 |
Here is an example of alignment flags at work to make a comment stand out
|
| 1667 |
-
(kind of looks like a 1 too).
|
| 1668 |
:set comments=sr:/***,m:**,ex-2:******/
|
| 1669 |
<
|
| 1670 |
/*** ~
|
|
@@ -1675,7 +1675,7 @@ offset 2 spaces for the "-2" flag--->** ~
|
|
| 1675 |
In this case, the first comment was typed, then return was pressed 4 times,
|
| 1676 |
then "/" was pressed to end the comment.
|
| 1677 |
|
| 1678 |
-
Here are some finer points of three part comments.
|
| 1679 |
alignment and offset flags are taken into consideration: opening a new line
|
| 1680 |
after a start-comment, opening a new line before an end-comment, and
|
| 1681 |
automatically ending a three-piece comment. The end alignment flag has a
|
|
@@ -1686,11 +1686,11 @@ will override the "r" and "l" flag.
|
|
| 1686 |
|
| 1687 |
Enabling 'cindent' will override the alignment flags in many cases.
|
| 1688 |
Reindenting using a different method like |gq| or |=| will not consult
|
| 1689 |
-
alignment flags either.
|
| 1690 |
-
formatting options.
|
| 1691 |
-
for context based indenting of comments but cannot replicate many
|
| 1692 |
-
indent alignments. However, 'indentexpr' has the ability to work
|
| 1693 |
-
three piece comments.
|
| 1694 |
|
| 1695 |
Other examples: >
|
| 1696 |
"b:*" Includes lines starting with "*", but not if the "*" is
|
|
@@ -1787,7 +1787,7 @@ B When joining lines, don't insert a space between two multibyte
|
|
| 1787 |
1 Don't break a line after a one-letter word. It's broken before it
|
| 1788 |
instead (if possible).
|
| 1789 |
*fo-]*
|
| 1790 |
-
] Respect 'textwidth' rigorously.
|
| 1791 |
longer than 'textwidth', unless line-break-prohibition rules make this
|
| 1792 |
impossible. Mainly for CJK scripts and works only if 'encoding' is
|
| 1793 |
"utf-8".
|
|
@@ -1825,8 +1825,8 @@ is when the 'a' flag is present. |auto-format|
|
|
| 1825 |
|
| 1826 |
Note that when 'paste' is on, Vim does no formatting at all.
|
| 1827 |
|
| 1828 |
-
Note that 'textwidth' can be non-zero even if Vim never performs
|
| 1829 |
-
'textwidth' is still useful for formatting with "gq".
|
| 1830 |
|
| 1831 |
If the 'comments' option includes "/*", "*" and/or "*/", then Vim has some
|
| 1832 |
built in stuff to treat these types of comments a bit more cleverly.
|
|
@@ -1913,8 +1913,8 @@ Also see |:uniq|.
|
|
| 1913 |
*:sort-l*
|
| 1914 |
With [l] sort uses the current collation locale.
|
| 1915 |
Implementation details: strcoll() is used to compare
|
| 1916 |
-
strings.
|
| 1917 |
-
locale.
|
| 1918 |
:language collate en_US.UTF-8
|
| 1919 |
:%sort l
|
| 1920 |
< |v:collate| can also used to check the current locale.
|
|
@@ -1930,7 +1930,7 @@ Also see |:uniq|.
|
|
| 1930 |
With [f] sorting is done on the Float in the line.
|
| 1931 |
The value of Float is determined similar to passing
|
| 1932 |
the text (after or inside a {pattern} match) to
|
| 1933 |
-
str2float() function.
|
| 1934 |
if Vim was compiled with Floating point support.
|
| 1935 |
|
| 1936 |
With [x] sorting is done on the first hexadecimal
|
|
|
|
| 1 |
+
*change.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 101 |
start and end of the motion are not in the same line, and there are only
|
| 102 |
blanks before the start and there are no non-blanks after the end of the
|
| 103 |
motion, the delete becomes linewise. This means that the delete also removes
|
| 104 |
+
the line of blanks that you might expect to remain. Use the |o_v| operator to
|
| 105 |
force the motion to be characterwise or remove the "z" flag from 'cpoptions'
|
| 106 |
(see |cpo-z|) to disable this peculiarity.
|
| 107 |
|
|
|
|
| 382 |
|
| 383 |
*v_g_CTRL-A*
|
| 384 |
{Visual}g CTRL-A Add [count] to the number or alphabetic character in
|
| 385 |
+
the highlighted text. If several lines are
|
| 386 |
highlighted, each one will be incremented by an
|
| 387 |
additional [count] (so effectively creating a
|
| 388 |
[count] incrementing sequence).
|
|
|
|
| 413 |
<
|
| 414 |
*v_g_CTRL-X*
|
| 415 |
{Visual}g CTRL-X Subtract [count] from the number or alphabetic
|
| 416 |
+
character in the highlighted text. If several lines
|
| 417 |
are highlighted, each value will be decremented by an
|
| 418 |
additional [count] (so effectively creating a [count]
|
| 419 |
decrementing sequence).
|
|
|
|
| 866 |
- magic is always set without regard to 'magic'.
|
| 867 |
- A ~ inserts a tilde literally.
|
| 868 |
- <CR> and \r inserts a carriage-return (CTRL-M).
|
| 869 |
+
- \<CR> does not have a special meaning. It's just one of \x.
|
| 870 |
|
| 871 |
Examples: >
|
| 872 |
:s/a\|b/xxx\0xxx/g modifies "a b" to "xxxaxxx xxxbxxx"
|
|
|
|
| 878 |
|
| 879 |
Note: "\L\u" can be used to capitalize the first letter of a word. This is
|
| 880 |
not compatible with Vi and older versions of Vim, where the "\u" would cancel
|
| 881 |
+
out the "\L". Same for "\U\l".
|
| 882 |
|
| 883 |
Note: In previous versions CTRL-V was handled in a special way. Since this is
|
| 884 |
not Vi compatible, this was removed. Use a backslash instead.
|
|
|
|
| 950 |
|
| 951 |
The "\=" notation can also be used inside the third argument {sub} of
|
| 952 |
|substitute()| function. In this case, the special meaning for characters as
|
| 953 |
+
mentioned at |sub-replace-special| does not apply at all. Especially, <CR> and
|
| 954 |
<NL> are interpreted not as a line break but as a carriage-return and a
|
| 955 |
new-line respectively.
|
| 956 |
|
|
|
|
| 1092 |
with `zp`. (for {Visual} see |Visual-mode|)
|
| 1093 |
|
| 1094 |
*:y* *:yank* *E850*
|
| 1095 |
+
:[range]y[ank] [x] Yank [range] lines [into register x]. Yanking to the
|
| 1096 |
"* or "+ registers is possible only when the
|
| 1097 |
|+clipboard| feature is included.
|
| 1098 |
|
|
|
|
| 1173 |
or 'a'.
|
| 1174 |
|
| 1175 |
["x]zp or *zp* *zP*
|
| 1176 |
+
["x]zP Like "p" and "P", except without adding trailing
|
| 1177 |
+
spaces when pasting a block. Thus the inserted text
|
| 1178 |
+
will not always be a rectangle. Especially useful in
|
| 1179 |
combination with |v_zy|.
|
| 1180 |
|
| 1181 |
You can use these commands to copy text from one place to another. Do this
|
|
|
|
| 1210 |
possibly the selection and/or clipboard). This is useful if you want to put
|
| 1211 |
that text somewhere else. But you cannot repeat the same change.
|
| 1212 |
With |P| the unnamed register is not changed (and neither the selection or
|
| 1213 |
+
clipboard), you can repeat the same change. But the deleted text cannot be
|
| 1214 |
used. If you do need it you can use |p| with another register. E.g., yank
|
| 1215 |
the text to copy, Visually select the text to replace and use "0p . You can
|
| 1216 |
repeat this as many times as you like, and the unnamed register will be
|
|
|
|
| 1291 |
exception is made for the delete operator with these movement commands: |%|,
|
| 1292 |
|(|, |)|, |`|, |/|, |?|, |n|, |N|, |{| and |}|.
|
| 1293 |
Register "1 is always used then (this is Vi compatible). The "- register is
|
| 1294 |
+
used as well if the delete is within a line. Note that these characters may
|
| 1295 |
+
be mapped. E.g. |%| is mapped by the matchit plugin.
|
| 1296 |
With each successive deletion or change, Vim shifts the previous contents
|
| 1297 |
of register 1 into register 2, 2 into 3, and so forth, losing the previous
|
| 1298 |
contents of register 9.
|
|
|
|
| 1608 |
|
| 1609 |
e End of a three-piece comment
|
| 1610 |
|
| 1611 |
+
l Left align. Used together with 's' or 'e', the leftmost character of
|
| 1612 |
start or end will line up with the leftmost character from the middle.
|
| 1613 |
+
This is the default and can be omitted. See below for more details.
|
| 1614 |
|
| 1615 |
+
r Right align. Same as above but rightmost instead of leftmost. See
|
| 1616 |
below for more details.
|
| 1617 |
|
| 1618 |
O Don't consider this comment for the "O" command.
|
|
|
|
| 1624 |
|
| 1625 |
{digits}
|
| 1626 |
When together with 's' or 'e': add {digit} amount of offset to an
|
| 1627 |
+
automatically inserted middle or end comment leader. The offset
|
| 1628 |
+
begins from a left alignment. See below for more details.
|
| 1629 |
|
| 1630 |
-{digits}
|
| 1631 |
Like {digits} but reduce the indent. This only works when there is
|
|
|
|
| 1664 |
without requiring the middle part to end with a space.
|
| 1665 |
|
| 1666 |
Here is an example of alignment flags at work to make a comment stand out
|
| 1667 |
+
(kind of looks like a 1 too). Consider comment string: >
|
| 1668 |
:set comments=sr:/***,m:**,ex-2:******/
|
| 1669 |
<
|
| 1670 |
/*** ~
|
|
|
|
| 1675 |
In this case, the first comment was typed, then return was pressed 4 times,
|
| 1676 |
then "/" was pressed to end the comment.
|
| 1677 |
|
| 1678 |
+
Here are some finer points of three part comments. There are three times when
|
| 1679 |
alignment and offset flags are taken into consideration: opening a new line
|
| 1680 |
after a start-comment, opening a new line before an end-comment, and
|
| 1681 |
automatically ending a three-piece comment. The end alignment flag has a
|
|
|
|
| 1686 |
|
| 1687 |
Enabling 'cindent' will override the alignment flags in many cases.
|
| 1688 |
Reindenting using a different method like |gq| or |=| will not consult
|
| 1689 |
+
alignment flags either. The same behaviour can be defined in those other
|
| 1690 |
+
formatting options. One consideration is that 'cindent' has additional
|
| 1691 |
+
options for context based indenting of comments but cannot replicate many
|
| 1692 |
+
three piece indent alignments. However, 'indentexpr' has the ability to work
|
| 1693 |
+
better with three piece comments.
|
| 1694 |
|
| 1695 |
Other examples: >
|
| 1696 |
"b:*" Includes lines starting with "*", but not if the "*" is
|
|
|
|
| 1787 |
1 Don't break a line after a one-letter word. It's broken before it
|
| 1788 |
instead (if possible).
|
| 1789 |
*fo-]*
|
| 1790 |
+
] Respect 'textwidth' rigorously. With this flag set, no line can be
|
| 1791 |
longer than 'textwidth', unless line-break-prohibition rules make this
|
| 1792 |
impossible. Mainly for CJK scripts and works only if 'encoding' is
|
| 1793 |
"utf-8".
|
|
|
|
| 1825 |
|
| 1826 |
Note that when 'paste' is on, Vim does no formatting at all.
|
| 1827 |
|
| 1828 |
+
Note that 'textwidth' can be non-zero even if Vim never performs
|
| 1829 |
+
auto-wrapping; 'textwidth' is still useful for formatting with "gq".
|
| 1830 |
|
| 1831 |
If the 'comments' option includes "/*", "*" and/or "*/", then Vim has some
|
| 1832 |
built in stuff to treat these types of comments a bit more cleverly.
|
|
|
|
| 1913 |
*:sort-l*
|
| 1914 |
With [l] sort uses the current collation locale.
|
| 1915 |
Implementation details: strcoll() is used to compare
|
| 1916 |
+
strings. See |:language| to check or set the collation
|
| 1917 |
+
locale. Example: >
|
| 1918 |
:language collate en_US.UTF-8
|
| 1919 |
:%sort l
|
| 1920 |
< |v:collate| can also used to check the current locale.
|
|
|
|
| 1930 |
With [f] sorting is done on the Float in the line.
|
| 1931 |
The value of Float is determined similar to passing
|
| 1932 |
the text (after or inside a {pattern} match) to
|
| 1933 |
+
str2float() function. This option is available only
|
| 1934 |
if Vim was compiled with Floating point support.
|
| 1935 |
|
| 1936 |
With [x] sorting is done on the first hexadecimal
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*channel.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -89,7 +89,8 @@ The number will increase every time you send a message.
|
|
| 89 |
The server can send a command to Vim. Type this on T1 (literally, including
|
| 90 |
the quotes):
|
| 91 |
["ex","echo 'hi there'"] ~
|
| 92 |
-
And you should see the message in Vim.
|
|
|
|
| 93 |
["normal","w"] ~
|
| 94 |
|
| 95 |
To handle asynchronous communication a callback needs to be used: >
|
|
@@ -234,7 +235,7 @@ what you want! Stopping the job with job_stop() might be better.
|
|
| 234 |
All readahead is discarded, callbacks will no longer be invoked.
|
| 235 |
|
| 236 |
Note that a channel is closed in three stages:
|
| 237 |
-
- The I/O ends, log message: "Closing channel".
|
| 238 |
messages to read or callbacks to invoke.
|
| 239 |
- The readahead is cleared, log message: "Clearing channel". Some variables
|
| 240 |
may still reference the channel.
|
|
@@ -478,7 +479,7 @@ To read from the error output use the "part" option:
|
|
| 478 |
{"part": "err"} ~
|
| 479 |
To read a message with a specific ID, on a JS or JSON channel:
|
| 480 |
{"id": 99} ~
|
| 481 |
-
When no ID is specified or the ID is -1, the first message is returned.
|
| 482 |
overrules any callback waiting for this message.
|
| 483 |
|
| 484 |
For a RAW channel this returns whatever is available, since Vim does not know
|
|
@@ -571,7 +572,8 @@ ch_evalraw({handle}, {string} [, {options}]) *ch_evalraw()*
|
|
| 571 |
Return type: dict<any> or |String|
|
| 572 |
|
| 573 |
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
|
| 574 |
-
Get the buffer number that {handle} is using for String
|
|
|
|
| 575 |
{handle} can be a Channel or a Job that has a Channel.
|
| 576 |
{what} can be "err" for stderr, "out" for stdout or empty for
|
| 577 |
socket output.
|
|
@@ -728,7 +730,7 @@ ch_sendexpr({handle}, {expr} [, {options}]) *ch_sendexpr()*
|
|
| 728 |
{handle} can be a Channel or a Job that has a Channel.
|
| 729 |
When using the "lsp" channel mode, {expr} must be a |Dict|.
|
| 730 |
|
| 731 |
-
If the channel mode is "lsp", then returns a Dict.
|
| 732 |
returns an empty String. If the "callback" item is present in
|
| 733 |
{options}, then the returned Dict contains the ID of the
|
| 734 |
request message. The ID can be used to send a cancellation
|
|
@@ -813,12 +815,12 @@ been received and not parsed correctly.
|
|
| 813 |
If the command produces a line of output that you want to deal with, specify
|
| 814 |
a handler for stdout: >
|
| 815 |
let job = job_start(command, {"out_cb": "MyHandler"})
|
| 816 |
-
The function will be called with the channel and a message.
|
| 817 |
it like this: >
|
| 818 |
func MyHandler(channel, msg)
|
| 819 |
|
| 820 |
Without the handler you need to read the output with |ch_read()| or
|
| 821 |
-
|ch_readraw()|.
|
| 822 |
|
| 823 |
Note that if the job exits before you read the output, the output may be lost.
|
| 824 |
This depends on the system (on Unix this happens because closing the write end
|
|
@@ -856,7 +858,7 @@ To run a job that reads from a buffer: >
|
|
| 856 |
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
|
| 857 |
<
|
| 858 |
*E915* *E918*
|
| 859 |
-
The buffer is found by name, similar to |bufnr()|.
|
| 860 |
be loaded when job_start() is called.
|
| 861 |
|
| 862 |
By default this reads the whole buffer. This can be changed with the "in_top"
|
|
@@ -933,7 +935,8 @@ job_info([{job}]) *job_info()*
|
|
| 933 |
Returns a Dictionary with information about {job}:
|
| 934 |
"status" what |job_status()| returns
|
| 935 |
"channel" what |job_getchannel()| returns
|
| 936 |
-
"cmd" List of command arguments used to start the
|
|
|
|
| 937 |
"process" process ID
|
| 938 |
"tty_in" terminal input name, empty when none
|
| 939 |
"tty_out" terminal output name, empty when none
|
|
@@ -985,11 +988,11 @@ job_start({command} [, {options}]) *job_start()*
|
|
| 985 |
passed to execvp(). Arguments in double quotes can contain
|
| 986 |
white space.
|
| 987 |
|
| 988 |
-
{command} can be a List, where the first item is the
|
| 989 |
-
and further items are the arguments. All items are
|
| 990 |
-
to String. This works best on Unix.
|
| 991 |
|
| 992 |
-
On MS-Windows, job_start() makes a GUI application hidden.
|
| 993 |
you want to show it, use |:!start| instead.
|
| 994 |
|
| 995 |
The command is executed directly, not through a shell, the
|
|
@@ -1311,7 +1314,7 @@ To get the status of a job: >
|
|
| 1311 |
To make a job stop running: >
|
| 1312 |
job_stop(job)
|
| 1313 |
|
| 1314 |
-
This is the normal way to end a job.
|
| 1315 |
It is possible to use other ways to stop the job, or even send arbitrary
|
| 1316 |
signals. E.g. to force a job to stop, "kill it": >
|
| 1317 |
job_stop(job, "kill")
|
|
@@ -1327,10 +1330,10 @@ If you want to type input for the job in a Vim window you have a few options:
|
|
| 1327 |
- Use a terminal window. This works well if what you type goes directly to
|
| 1328 |
the job and the job output is directly displayed in the window.
|
| 1329 |
See |terminal-window|.
|
| 1330 |
-
- Use a window with a prompt buffer.
|
| 1331 |
the job in Vim while displaying (possibly filtered) output from the job.
|
| 1332 |
|
| 1333 |
-
A prompt buffer is created by setting 'buftype' to "prompt".
|
| 1334 |
normally only do that in a newly created buffer.
|
| 1335 |
|
| 1336 |
The user can edit and enter one line of text at the very last line of the
|
|
@@ -1339,8 +1342,8 @@ buffer. When pressing Enter in the prompt line the callback set with
|
|
| 1339 |
Another callback would receive the output from the job and display it in the
|
| 1340 |
buffer, below the prompt (and above the next prompt).
|
| 1341 |
|
| 1342 |
-
Only the text in the last line, after the prompt, is editable.
|
| 1343 |
-
buffer is not modifiable with Normal mode commands. It can be modified by
|
| 1344 |
calling functions, such as |append()|. Using other commands may mess up the
|
| 1345 |
buffer.
|
| 1346 |
|
|
@@ -1348,8 +1351,8 @@ After setting 'buftype' to "prompt" Vim does not automatically start Insert
|
|
| 1348 |
mode, use `:startinsert` if you want to enter Insert mode, so that the user
|
| 1349 |
can start typing a line.
|
| 1350 |
|
| 1351 |
-
The text of the prompt can be set with the |prompt_setprompt()| function.
|
| 1352 |
-
no prompt is set with |prompt_setprompt()|, "% " is used.
|
| 1353 |
effective prompt text for a buffer, with |prompt_getprompt()|.
|
| 1354 |
|
| 1355 |
The user can go to Normal mode and navigate through the buffer. This can be
|
|
@@ -1357,7 +1360,7 @@ useful to see older output or copy text.
|
|
| 1357 |
|
| 1358 |
The CTRL-W key can be used to start a window command, such as CTRL-W w to
|
| 1359 |
switch to the next window. This also works in Insert mode (use Shift-CTRL-W
|
| 1360 |
-
to delete a word).
|
| 1361 |
coming back to the prompt window Insert mode will be restored.
|
| 1362 |
|
| 1363 |
Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
|
|
@@ -1476,7 +1479,7 @@ To open a channel using the 'lsp' mode, set the 'mode' item in the |ch_open()|
|
|
| 1476 |
let ch = ch_open(..., #{mode: 'lsp'})
|
| 1477 |
|
| 1478 |
To open a channel using the 'lsp' mode with a job, set the 'in_mode' and
|
| 1479 |
-
'out_mode' items in the |job_start()| {options} argument to 'lsp'.
|
| 1480 |
|
| 1481 |
let cmd = ['clangd', '--background-index', '--clang-tidy']
|
| 1482 |
let opts = {}
|
|
@@ -1494,8 +1497,8 @@ formats appropriately or you should use a separate callback function for
|
|
| 1494 |
"out_cb" and "err_cb" to handle them as shown above.
|
| 1495 |
|
| 1496 |
To synchronously send a JSON-RPC request to the server, use the
|
| 1497 |
-
|ch_evalexpr()| function.
|
| 1498 |
-
response message from the server.
|
| 1499 |
the 'timeout' field in the {options} argument to control the response wait
|
| 1500 |
time. If the request times out, then an empty |Dict| is returned. Example: >
|
| 1501 |
|
|
@@ -1509,9 +1512,10 @@ time. If the request times out, then an empty |Dict| is returned. Example: >
|
|
| 1509 |
... <handle failure>
|
| 1510 |
endif
|
| 1511 |
|
| 1512 |
-
Note that in the request message the 'id' field should not be specified.
|
| 1513 |
-
is specified, then Vim will overwrite the value with an internally
|
| 1514 |
-
identifier. Vim currently supports only a number type for the 'id'
|
|
|
|
| 1515 |
The callback function will be invoked for both a successful and a failed RPC
|
| 1516 |
request.
|
| 1517 |
|
|
@@ -1549,14 +1553,14 @@ for the request. Example: >
|
|
| 1549 |
call ch_sendexpr(ch, notif)
|
| 1550 |
|
| 1551 |
To send a JSON-RPC notification message to the server, use the |ch_sendexpr()|
|
| 1552 |
-
function.
|
| 1553 |
don't specify the "callback" item. Example: >
|
| 1554 |
|
| 1555 |
call ch_sendexpr(ch, #{method: 'initialized'})
|
| 1556 |
|
| 1557 |
To respond to a JSON-RPC request message from the server, use the
|
| 1558 |
|ch_sendexpr()| function. In the response message, copy the 'id' field value
|
| 1559 |
-
from the server request message.
|
| 1560 |
|
| 1561 |
let resp = {}
|
| 1562 |
let resp.id = req.id
|
|
|
|
| 1 |
+
*channel.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 89 |
The server can send a command to Vim. Type this on T1 (literally, including
|
| 90 |
the quotes):
|
| 91 |
["ex","echo 'hi there'"] ~
|
| 92 |
+
And you should see the message in Vim. You can move the cursor a word
|
| 93 |
+
forward:
|
| 94 |
["normal","w"] ~
|
| 95 |
|
| 96 |
To handle asynchronous communication a callback needs to be used: >
|
|
|
|
| 235 |
All readahead is discarded, callbacks will no longer be invoked.
|
| 236 |
|
| 237 |
Note that a channel is closed in three stages:
|
| 238 |
+
- The I/O ends, log message: "Closing channel". There can still be queued
|
| 239 |
messages to read or callbacks to invoke.
|
| 240 |
- The readahead is cleared, log message: "Clearing channel". Some variables
|
| 241 |
may still reference the channel.
|
|
|
|
| 479 |
{"part": "err"} ~
|
| 480 |
To read a message with a specific ID, on a JS or JSON channel:
|
| 481 |
{"id": 99} ~
|
| 482 |
+
When no ID is specified or the ID is -1, the first message is returned. This
|
| 483 |
overrules any callback waiting for this message.
|
| 484 |
|
| 485 |
For a RAW channel this returns whatever is available, since Vim does not know
|
|
|
|
| 572 |
Return type: dict<any> or |String|
|
| 573 |
|
| 574 |
ch_getbufnr({handle}, {what}) *ch_getbufnr()*
|
| 575 |
+
Get the buffer number that {handle} is using for String
|
| 576 |
+
{what}.
|
| 577 |
{handle} can be a Channel or a Job that has a Channel.
|
| 578 |
{what} can be "err" for stderr, "out" for stdout or empty for
|
| 579 |
socket output.
|
|
|
|
| 730 |
{handle} can be a Channel or a Job that has a Channel.
|
| 731 |
When using the "lsp" channel mode, {expr} must be a |Dict|.
|
| 732 |
|
| 733 |
+
If the channel mode is "lsp", then returns a Dict. Otherwise
|
| 734 |
returns an empty String. If the "callback" item is present in
|
| 735 |
{options}, then the returned Dict contains the ID of the
|
| 736 |
request message. The ID can be used to send a cancellation
|
|
|
|
| 815 |
If the command produces a line of output that you want to deal with, specify
|
| 816 |
a handler for stdout: >
|
| 817 |
let job = job_start(command, {"out_cb": "MyHandler"})
|
| 818 |
+
The function will be called with the channel and a message. You would define
|
| 819 |
it like this: >
|
| 820 |
func MyHandler(channel, msg)
|
| 821 |
|
| 822 |
Without the handler you need to read the output with |ch_read()| or
|
| 823 |
+
|ch_readraw()|. You can do this in the close callback, see |read-in-close-cb|.
|
| 824 |
|
| 825 |
Note that if the job exits before you read the output, the output may be lost.
|
| 826 |
This depends on the system (on Unix this happens because closing the write end
|
|
|
|
| 858 |
\ {'in_io': 'buffer', 'in_name': 'mybuffer'})
|
| 859 |
<
|
| 860 |
*E915* *E918*
|
| 861 |
+
The buffer is found by name, similar to |bufnr()|. The buffer must exist and
|
| 862 |
be loaded when job_start() is called.
|
| 863 |
|
| 864 |
By default this reads the whole buffer. This can be changed with the "in_top"
|
|
|
|
| 935 |
Returns a Dictionary with information about {job}:
|
| 936 |
"status" what |job_status()| returns
|
| 937 |
"channel" what |job_getchannel()| returns
|
| 938 |
+
"cmd" List of command arguments used to start the
|
| 939 |
+
job
|
| 940 |
"process" process ID
|
| 941 |
"tty_in" terminal input name, empty when none
|
| 942 |
"tty_out" terminal output name, empty when none
|
|
|
|
| 988 |
passed to execvp(). Arguments in double quotes can contain
|
| 989 |
white space.
|
| 990 |
|
| 991 |
+
{command} can be a List, where the first item is the
|
| 992 |
+
executable and further items are the arguments. All items are
|
| 993 |
+
converted to String. This works best on Unix.
|
| 994 |
|
| 995 |
+
On MS-Windows, job_start() makes a GUI application hidden. If
|
| 996 |
you want to show it, use |:!start| instead.
|
| 997 |
|
| 998 |
The command is executed directly, not through a shell, the
|
|
|
|
| 1314 |
To make a job stop running: >
|
| 1315 |
job_stop(job)
|
| 1316 |
|
| 1317 |
+
This is the normal way to end a job. On Unix it sends a SIGTERM to the job.
|
| 1318 |
It is possible to use other ways to stop the job, or even send arbitrary
|
| 1319 |
signals. E.g. to force a job to stop, "kill it": >
|
| 1320 |
job_stop(job, "kill")
|
|
|
|
| 1330 |
- Use a terminal window. This works well if what you type goes directly to
|
| 1331 |
the job and the job output is directly displayed in the window.
|
| 1332 |
See |terminal-window|.
|
| 1333 |
+
- Use a window with a prompt buffer. This works well when entering a line for
|
| 1334 |
the job in Vim while displaying (possibly filtered) output from the job.
|
| 1335 |
|
| 1336 |
+
A prompt buffer is created by setting 'buftype' to "prompt". You would
|
| 1337 |
normally only do that in a newly created buffer.
|
| 1338 |
|
| 1339 |
The user can edit and enter one line of text at the very last line of the
|
|
|
|
| 1342 |
Another callback would receive the output from the job and display it in the
|
| 1343 |
buffer, below the prompt (and above the next prompt).
|
| 1344 |
|
| 1345 |
+
Only the text in the last line, after the prompt, is editable. The rest of
|
| 1346 |
+
the buffer is not modifiable with Normal mode commands. It can be modified by
|
| 1347 |
calling functions, such as |append()|. Using other commands may mess up the
|
| 1348 |
buffer.
|
| 1349 |
|
|
|
|
| 1351 |
mode, use `:startinsert` if you want to enter Insert mode, so that the user
|
| 1352 |
can start typing a line.
|
| 1353 |
|
| 1354 |
+
The text of the prompt can be set with the |prompt_setprompt()| function. If
|
| 1355 |
+
no prompt is set with |prompt_setprompt()|, "% " is used. You can get the
|
| 1356 |
effective prompt text for a buffer, with |prompt_getprompt()|.
|
| 1357 |
|
| 1358 |
The user can go to Normal mode and navigate through the buffer. This can be
|
|
|
|
| 1360 |
|
| 1361 |
The CTRL-W key can be used to start a window command, such as CTRL-W w to
|
| 1362 |
switch to the next window. This also works in Insert mode (use Shift-CTRL-W
|
| 1363 |
+
to delete a word). When leaving the window Insert mode will be stopped. When
|
| 1364 |
coming back to the prompt window Insert mode will be restored.
|
| 1365 |
|
| 1366 |
Any command that starts Insert mode, such as "a", "i", "A" and "I", will move
|
|
|
|
| 1479 |
let ch = ch_open(..., #{mode: 'lsp'})
|
| 1480 |
|
| 1481 |
To open a channel using the 'lsp' mode with a job, set the 'in_mode' and
|
| 1482 |
+
'out_mode' items in the |job_start()| {options} argument to 'lsp'. Example: >
|
| 1483 |
|
| 1484 |
let cmd = ['clangd', '--background-index', '--clang-tidy']
|
| 1485 |
let opts = {}
|
|
|
|
| 1497 |
"out_cb" and "err_cb" to handle them as shown above.
|
| 1498 |
|
| 1499 |
To synchronously send a JSON-RPC request to the server, use the
|
| 1500 |
+
|ch_evalexpr()| function. This function will wait and return the decoded
|
| 1501 |
+
response message from the server. You can use either the |channel-timeout| or
|
| 1502 |
the 'timeout' field in the {options} argument to control the response wait
|
| 1503 |
time. If the request times out, then an empty |Dict| is returned. Example: >
|
| 1504 |
|
|
|
|
| 1512 |
... <handle failure>
|
| 1513 |
endif
|
| 1514 |
|
| 1515 |
+
Note that in the request message the 'id' field should not be specified. If
|
| 1516 |
+
it is specified, then Vim will overwrite the value with an internally
|
| 1517 |
+
generated identifier. Vim currently supports only a number type for the 'id'
|
| 1518 |
+
field.
|
| 1519 |
The callback function will be invoked for both a successful and a failed RPC
|
| 1520 |
request.
|
| 1521 |
|
|
|
|
| 1553 |
call ch_sendexpr(ch, notif)
|
| 1554 |
|
| 1555 |
To send a JSON-RPC notification message to the server, use the |ch_sendexpr()|
|
| 1556 |
+
function. As the server will not send a response message to the notification,
|
| 1557 |
don't specify the "callback" item. Example: >
|
| 1558 |
|
| 1559 |
call ch_sendexpr(ch, #{method: 'initialized'})
|
| 1560 |
|
| 1561 |
To respond to a JSON-RPC request message from the server, use the
|
| 1562 |
|ch_sendexpr()| function. In the response message, copy the 'id' field value
|
| 1563 |
+
from the server request message. Example: >
|
| 1564 |
|
| 1565 |
let resp = {}
|
| 1566 |
let resp.id = req.id
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*cmdline.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -162,7 +162,8 @@ CTRL-R {register} *c_CTRL-R* *c_<C-R>*
|
|
| 162 |
the last delete or yank
|
| 163 |
'%' the current file name
|
| 164 |
'#' the alternate file name
|
| 165 |
-
'*' the clipboard contents (X11: primary
|
|
|
|
| 166 |
'+' the clipboard contents
|
| 167 |
'/' the last search pattern
|
| 168 |
':' the last command-line
|
|
@@ -440,7 +441,8 @@ CTRL-D List names that match the pattern in front of the cursor.
|
|
| 440 |
<S-Tab> does not work everywhere.
|
| 441 |
*c_CTRL-N*
|
| 442 |
CTRL-N After using 'wildchar' which got multiple matches, go to next
|
| 443 |
-
match. Otherwise recall more recent command-line from
|
|
|
|
| 444 |
*c_CTRL-P*
|
| 445 |
CTRL-P After using 'wildchar' which got multiple matches, go to
|
| 446 |
previous match. Otherwise recall older command-line from
|
|
@@ -728,9 +730,9 @@ See also |`=|.
|
|
| 728 |
|
| 729 |
*:_!*
|
| 730 |
The '!' (bang) character after an Ex command makes the command behave in a
|
| 731 |
-
different way. The '!' should be placed immediately after the command,
|
| 732 |
-
any blanks in between. If you insert blanks the '!' will be seen as
|
| 733 |
-
argument for the command, which has a different meaning. For example:
|
| 734 |
:w! name write the current buffer to file "name", overwriting
|
| 735 |
any existing file
|
| 736 |
:w !name send the current buffer as standard input to command
|
|
@@ -1105,8 +1107,9 @@ Note: these are typed literally, they are not special keys!
|
|
| 1105 |
*filename-modifiers*
|
| 1106 |
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
|
| 1107 |
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
|
| 1108 |
-
The file name modifiers can be used after "%", "#", "#n", "<cfile>",
|
| 1109 |
-
"<afile>" or "<abuf>". They are also used with the |fnamemodify()|
|
|
|
|
| 1110 |
|
| 1111 |
These modifiers can be given, in this order:
|
| 1112 |
:p Make file name a full path. Must be the first modifier. Also
|
|
@@ -1159,7 +1162,7 @@ These modifiers can be given, in this order:
|
|
| 1159 |
Substitute all occurrences of "pat" with "sub". Otherwise
|
| 1160 |
this works like ":s".
|
| 1161 |
:S Escape special characters for use with a shell command (see
|
| 1162 |
-
|shellescape()|).
|
| 1163 |
:!dir <cfile>:S
|
| 1164 |
:call system('chmod +w -- ' .. expand('%:S'))
|
| 1165 |
|
|
@@ -1240,9 +1243,9 @@ Therefore "\file\foo" is a valid file name, you don't have to type the
|
|
| 1240 |
backslash twice.
|
| 1241 |
|
| 1242 |
An exception is the '$' sign. It is a valid character in a file name. But
|
| 1243 |
-
to avoid a file name like "$home" to be interpreted as an environment
|
| 1244 |
-
it needs to be preceded by a backslash. Therefore you need to use
|
| 1245 |
-
for the file "$home" in the root directory. A few examples:
|
| 1246 |
|
| 1247 |
FILE NAME INTERPRETED AS ~
|
| 1248 |
$home expanded to value of environment var $home
|
|
|
|
| 1 |
+
*cmdline.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 162 |
the last delete or yank
|
| 163 |
'%' the current file name
|
| 164 |
'#' the alternate file name
|
| 165 |
+
'*' the clipboard contents (X11: primary
|
| 166 |
+
selection)
|
| 167 |
'+' the clipboard contents
|
| 168 |
'/' the last search pattern
|
| 169 |
':' the last command-line
|
|
|
|
| 441 |
<S-Tab> does not work everywhere.
|
| 442 |
*c_CTRL-N*
|
| 443 |
CTRL-N After using 'wildchar' which got multiple matches, go to next
|
| 444 |
+
match. Otherwise recall more recent command-line from
|
| 445 |
+
history.
|
| 446 |
*c_CTRL-P*
|
| 447 |
CTRL-P After using 'wildchar' which got multiple matches, go to
|
| 448 |
previous match. Otherwise recall older command-line from
|
|
|
|
| 730 |
|
| 731 |
*:_!*
|
| 732 |
The '!' (bang) character after an Ex command makes the command behave in a
|
| 733 |
+
different way. The '!' should be placed immediately after the command,
|
| 734 |
+
without any blanks in between. If you insert blanks the '!' will be seen as
|
| 735 |
+
an argument for the command, which has a different meaning. For example:
|
| 736 |
:w! name write the current buffer to file "name", overwriting
|
| 737 |
any existing file
|
| 738 |
:w !name send the current buffer as standard input to command
|
|
|
|
| 1107 |
*filename-modifiers*
|
| 1108 |
*:_%:* *::8* *::p* *::.* *::~* *::h* *::t* *::r* *::e* *::s* *::gs* *::S*
|
| 1109 |
*%:8* *%:p* *%:.* *%:~* *%:h* *%:t* *%:r* *%:e* *%:s* *%:gs* *%:S*
|
| 1110 |
+
The file name modifiers can be used after "%", "#", "#n", "<cfile>",
|
| 1111 |
+
"<sfile>", "<afile>" or "<abuf>". They are also used with the |fnamemodify()|
|
| 1112 |
+
function.
|
| 1113 |
|
| 1114 |
These modifiers can be given, in this order:
|
| 1115 |
:p Make file name a full path. Must be the first modifier. Also
|
|
|
|
| 1162 |
Substitute all occurrences of "pat" with "sub". Otherwise
|
| 1163 |
this works like ":s".
|
| 1164 |
:S Escape special characters for use with a shell command (see
|
| 1165 |
+
|shellescape()|). Must be the last one. Examples: >
|
| 1166 |
:!dir <cfile>:S
|
| 1167 |
:call system('chmod +w -- ' .. expand('%:S'))
|
| 1168 |
|
|
|
|
| 1243 |
backslash twice.
|
| 1244 |
|
| 1245 |
An exception is the '$' sign. It is a valid character in a file name. But
|
| 1246 |
+
to avoid a file name like "$home" to be interpreted as an environment
|
| 1247 |
+
variable, it needs to be preceded by a backslash. Therefore you need to use
|
| 1248 |
+
"/\$home" for the file "$home" in the root directory. A few examples:
|
| 1249 |
|
| 1250 |
FILE NAME INTERPRETED AS ~
|
| 1251 |
$home expanded to value of environment var $home
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*debug.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -71,8 +71,8 @@ some steps to provide a useful bug report.
|
|
| 71 |
3.1 GENERIC ~
|
| 72 |
|
| 73 |
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
|
| 74 |
-
for gvim.exe, or vim.pdb for vim.exe.
|
| 75 |
-
same place that you obtained the executable.
|
| 76 |
matches the EXE (same date).
|
| 77 |
|
| 78 |
If you built the executable yourself with the Microsoft Visual C++ compiler,
|
|
@@ -115,7 +115,7 @@ If you have a non-free version of Visual Studio, you can save a minidump via
|
|
| 115 |
the Debug menu and send it with the bug report. A minidump is a small file
|
| 116 |
(<100KB), which contains information about the state of your process.
|
| 117 |
Visual C++ 2005 Express Edition cannot save minidumps and it cannot be
|
| 118 |
-
installed as a just-in-time debugger.
|
| 119 |
need to save minidumps or you want a just-in-time (postmortem) debugger.
|
| 120 |
|
| 121 |
*debug-windbg*
|
|
@@ -125,21 +125,21 @@ See |get-ms-debuggers| to obtain a copy of WinDbg.
|
|
| 125 |
|
| 126 |
As with the Visual Studio IDE, you can attach WinDbg to a running Vim process.
|
| 127 |
You can also have your system automatically invoke WinDbg as a postmortem
|
| 128 |
-
debugger.
|
| 129 |
|
| 130 |
-
To attach WinDbg to a running Vim process, launch WinDbg.
|
| 131 |
-
choose Attach to a Process.
|
| 132 |
|
| 133 |
At this point, choose Symbol File Path on the File menu, and add the folder
|
| 134 |
-
containing your Vim PDB to the sympath.
|
| 135 |
-
use Source File Path on the File menu.
|
| 136 |
-
and set breakpoints, if you like.
|
| 137 |
-
source file at the point of the crash.
|
| 138 |
-
the call stack, local variables, watch windows, and so on.
|
| 139 |
|
| 140 |
If WinDbg is your postmortem debugger, you do not need to attach WinDbg to
|
| 141 |
-
your Vim process.
|
| 142 |
-
automatically.
|
| 143 |
|
| 144 |
To save a minidump, type the following at the WinDbg command line: >
|
| 145 |
.dump vim.dmp
|
|
@@ -150,11 +150,11 @@ To save a minidump, type the following at the WinDbg command line: >
|
|
| 150 |
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
|
| 151 |
|
| 152 |
In Visual Studio 2005: on the File menu, choose Open, then Project/Solution.
|
| 153 |
-
Navigate to the .dmp file and open it.
|
| 154 |
Follow the instructions in |debug-vs2005| to set the Symbol File Path.
|
| 155 |
|
| 156 |
-
In WinDbg: choose Open Crash Dump on the File menu.
|
| 157 |
-
|debug-windbg| to set the Symbol File Path.
|
| 158 |
|
| 159 |
*get-ms-debuggers*
|
| 160 |
3.5 Obtaining Microsoft Debugging Tools ~
|
|
|
|
| 1 |
+
*debug.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 71 |
3.1 GENERIC ~
|
| 72 |
|
| 73 |
You must obtain the debugger symbols (PDB) file for your executable: gvim.pdb
|
| 74 |
+
for gvim.exe, or vim.pdb for vim.exe. The PDB should be available from the
|
| 75 |
+
same place that you obtained the executable. Be sure to use the PDB that
|
| 76 |
matches the EXE (same date).
|
| 77 |
|
| 78 |
If you built the executable yourself with the Microsoft Visual C++ compiler,
|
|
|
|
| 115 |
the Debug menu and send it with the bug report. A minidump is a small file
|
| 116 |
(<100KB), which contains information about the state of your process.
|
| 117 |
Visual C++ 2005 Express Edition cannot save minidumps and it cannot be
|
| 118 |
+
installed as a just-in-time debugger. Use WinDbg, |debug-windbg|, if you
|
| 119 |
need to save minidumps or you want a just-in-time (postmortem) debugger.
|
| 120 |
|
| 121 |
*debug-windbg*
|
|
|
|
| 125 |
|
| 126 |
As with the Visual Studio IDE, you can attach WinDbg to a running Vim process.
|
| 127 |
You can also have your system automatically invoke WinDbg as a postmortem
|
| 128 |
+
debugger. To set WinDbg as your postmortem debugger, run "windbg -I".
|
| 129 |
|
| 130 |
+
To attach WinDbg to a running Vim process, launch WinDbg. On the File menu,
|
| 131 |
+
choose Attach to a Process. Select the Vim process and click OK.
|
| 132 |
|
| 133 |
At this point, choose Symbol File Path on the File menu, and add the folder
|
| 134 |
+
containing your Vim PDB to the sympath. If you have Vim source available,
|
| 135 |
+
use Source File Path on the File menu. You can now open source files in
|
| 136 |
+
WinDbg and set breakpoints, if you like. Reproduce your crash. WinDbg should
|
| 137 |
+
open the source file at the point of the crash. Using the View menu, you can
|
| 138 |
+
examine the call stack, local variables, watch windows, and so on.
|
| 139 |
|
| 140 |
If WinDbg is your postmortem debugger, you do not need to attach WinDbg to
|
| 141 |
+
your Vim process. Simply reproduce the crash and WinDbg will launch
|
| 142 |
+
automatically. As above, set the Symbol File Path and the Source File Path.
|
| 143 |
|
| 144 |
To save a minidump, type the following at the WinDbg command line: >
|
| 145 |
.dump vim.dmp
|
|
|
|
| 150 |
If you have a minidump file, you can open it in Visual Studio or in WinDbg.
|
| 151 |
|
| 152 |
In Visual Studio 2005: on the File menu, choose Open, then Project/Solution.
|
| 153 |
+
Navigate to the .dmp file and open it. Now press F5 to invoke the debugger.
|
| 154 |
Follow the instructions in |debug-vs2005| to set the Symbol File Path.
|
| 155 |
|
| 156 |
+
In WinDbg: choose Open Crash Dump on the File menu. Follow the instructions
|
| 157 |
+
in |debug-windbg| to set the Symbol File Path.
|
| 158 |
|
| 159 |
*get-ms-debuggers*
|
| 160 |
3.5 Obtaining Microsoft Debugging Tools ~
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*debugger.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Gordon Prieur
|
|
@@ -51,9 +51,9 @@ Many debuggers mark specific lines by placing a small sign or color highlight
|
|
| 51 |
on the line. The |:sign| command lets the debugger set this graphic mark. Some
|
| 52 |
examples where this feature would be used would be a debugger showing an arrow
|
| 53 |
representing the Program Counter (PC) of the program being debugged. Another
|
| 54 |
-
example would be a small stop sign for a line with a breakpoint. These
|
| 55 |
-
highlights let the user keep track of certain parts of the state of
|
| 56 |
-
debugger.
|
| 57 |
|
| 58 |
This feature can be used with more than debuggers, too. An IPE can use a sign
|
| 59 |
to highlight build errors, searched text, or other things. The sign feature
|
|
|
|
| 1 |
+
*debugger.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Gordon Prieur
|
|
|
|
| 51 |
on the line. The |:sign| command lets the debugger set this graphic mark. Some
|
| 52 |
examples where this feature would be used would be a debugger showing an arrow
|
| 53 |
representing the Program Counter (PC) of the program being debugged. Another
|
| 54 |
+
example would be a small stop sign for a line with a breakpoint. These
|
| 55 |
+
visible highlights let the user keep track of certain parts of the state of
|
| 56 |
+
the debugger.
|
| 57 |
|
| 58 |
This feature can be used with more than debuggers, too. An IPE can use a sign
|
| 59 |
to highlight build errors, searched text, or other things. The sign feature
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*diff.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -74,7 +74,8 @@ See `:diffoff` for an easy way to revert the options.
|
|
| 74 |
The differences shown are actually the differences in the buffer. Thus if you
|
| 75 |
make changes after loading a file, these will be included in the displayed
|
| 76 |
diffs. You might have to do ":diffupdate" now and then, not all changes are
|
| 77 |
-
immediately taken into account, especially when using an external diff
|
|
|
|
| 78 |
|
| 79 |
In your .vimrc file you could do something special when Vim was started in
|
| 80 |
diff mode. You could use a construct like this: >
|
|
@@ -292,7 +293,7 @@ that the buffers will be equal within the specified range.
|
|
| 292 |
|
| 293 |
*do*
|
| 294 |
[count]do Same as ":diffget" without range. The "o" stands for "obtain"
|
| 295 |
-
("dg" can't be used, it could be the start of "dgg"!).
|
| 296 |
this doesn't work in Visual mode.
|
| 297 |
If you give a [count], it is used as the [bufspec] argument
|
| 298 |
for ":diffget".
|
|
@@ -465,7 +466,7 @@ Also see 'diffopt' and the "diff" item of 'fillchars'.
|
|
| 465 |
|
| 466 |
*diff-slow* *diff_translations*
|
| 467 |
For very long lines, the diff syntax highlighting might be slow, especially
|
| 468 |
-
since it tries to match all different kind of localisations.
|
| 469 |
localisations and speed up the syntax highlighting, set the global variable
|
| 470 |
g:diff_translations to zero: >
|
| 471 |
|
|
@@ -547,7 +548,7 @@ The `redraw!` command may not be needed, depending on whether executing a
|
|
| 547 |
shell command shows something on the display or not.
|
| 548 |
|
| 549 |
If the 'diffexpr' expression starts with s: or |<SID>|, then it is replaced
|
| 550 |
-
with the script ID (|local-function|).
|
| 551 |
set diffexpr=s:MyDiffExpr()
|
| 552 |
set diffexpr=<SID>SomeDiffExpr()
|
| 553 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
@@ -608,7 +609,7 @@ directory are accidentally patched. Vim will also delete files starting with
|
|
| 608 |
v:fname_in and ending in ".rej" and ".orig".
|
| 609 |
|
| 610 |
If the 'patchexpr' expression starts with s: or |<SID>|, then it is replaced
|
| 611 |
-
with the script ID (|local-function|).
|
| 612 |
set patchexpr=s:MyPatchExpr()
|
| 613 |
set patchexpr=<SID>SomePatchExpr()
|
| 614 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
|
|
| 1 |
+
*diff.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 74 |
The differences shown are actually the differences in the buffer. Thus if you
|
| 75 |
make changes after loading a file, these will be included in the displayed
|
| 76 |
diffs. You might have to do ":diffupdate" now and then, not all changes are
|
| 77 |
+
immediately taken into account, especially when using an external diff
|
| 78 |
+
command.
|
| 79 |
|
| 80 |
In your .vimrc file you could do something special when Vim was started in
|
| 81 |
diff mode. You could use a construct like this: >
|
|
|
|
| 293 |
|
| 294 |
*do*
|
| 295 |
[count]do Same as ":diffget" without range. The "o" stands for "obtain"
|
| 296 |
+
("dg" can't be used, it could be the start of "dgg"!). Note:
|
| 297 |
this doesn't work in Visual mode.
|
| 298 |
If you give a [count], it is used as the [bufspec] argument
|
| 299 |
for ":diffget".
|
|
|
|
| 466 |
|
| 467 |
*diff-slow* *diff_translations*
|
| 468 |
For very long lines, the diff syntax highlighting might be slow, especially
|
| 469 |
+
since it tries to match all different kind of localisations. To disable
|
| 470 |
localisations and speed up the syntax highlighting, set the global variable
|
| 471 |
g:diff_translations to zero: >
|
| 472 |
|
|
|
|
| 548 |
shell command shows something on the display or not.
|
| 549 |
|
| 550 |
If the 'diffexpr' expression starts with s: or |<SID>|, then it is replaced
|
| 551 |
+
with the script ID (|local-function|). Example: >
|
| 552 |
set diffexpr=s:MyDiffExpr()
|
| 553 |
set diffexpr=<SID>SomeDiffExpr()
|
| 554 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
|
|
| 609 |
v:fname_in and ending in ".rej" and ".orig".
|
| 610 |
|
| 611 |
If the 'patchexpr' expression starts with s: or |<SID>|, then it is replaced
|
| 612 |
+
with the script ID (|local-function|). Example: >
|
| 613 |
set patchexpr=s:MyPatchExpr()
|
| 614 |
set patchexpr=<SID>SomePatchExpr()
|
| 615 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*digraph.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -112,7 +112,7 @@ mode. After leaving the Insert mode everything is fine. On some Unix systems
|
|
| 112 |
this means you have to define the environment-variable LC_CTYPE. If you are
|
| 113 |
using csh, then put the following line in your .cshrc: >
|
| 114 |
setenv LC_CTYPE en_US.utf8
|
| 115 |
-
(or similar for a different language or country).
|
| 116 |
locale on your system, i.e. on Unix-like systems it must be present in the
|
| 117 |
output of >
|
| 118 |
locale -a
|
|
|
|
| 1 |
+
*digraph.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 112 |
this means you have to define the environment-variable LC_CTYPE. If you are
|
| 113 |
using csh, then put the following line in your .cshrc: >
|
| 114 |
setenv LC_CTYPE en_US.utf8
|
| 115 |
+
(or similar for a different language or country). The value must be a valid
|
| 116 |
locale on your system, i.e. on Unix-like systems it must be present in the
|
| 117 |
output of >
|
| 118 |
locale -a
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*editing.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -134,11 +134,11 @@ set, Vim renames or copies the original file before it will be overwritten.
|
|
| 134 |
You can use this file if you discover that you need the original file. See
|
| 135 |
also the 'patchmode' option. The name of the backup file is normally the same
|
| 136 |
as the original file with 'backupext' appended. The default "~" is a bit
|
| 137 |
-
strange to avoid accidentally overwriting existing files. If you prefer
|
| 138 |
-
change the 'backupext' option. Extra dots are replaced with '_' on
|
| 139 |
-
machines, when Vim has detected that an MS-DOS-like filesystem is
|
| 140 |
-
(e.g., messydos or crossdos) or when the 'shortname' option is on.
|
| 141 |
-
backup file can be placed in another directory by setting 'backupdir'.
|
| 142 |
|
| 143 |
*auto-shortname*
|
| 144 |
Technical: On the Amiga you can use 30 characters for a file name. But on an
|
|
@@ -297,7 +297,7 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
|
|
| 297 |
Mnemonic: "goto file".
|
| 298 |
Uses the 'isfname' option to find out which characters
|
| 299 |
are supposed to be in a file name. Trailing
|
| 300 |
-
punctuation characters ".,:;!" are ignored.
|
| 301 |
spaces "\ " are reduced to a single space.
|
| 302 |
Uses the 'path' option as a list of directory names to
|
| 303 |
look for the file. See the 'path' option for details
|
|
@@ -335,7 +335,7 @@ CTRL-^ Edit the alternate file. Mostly the alternate file is
|
|
| 335 |
the file.
|
| 336 |
The file name and the number must be separated by a
|
| 337 |
non-filename (see 'isfname') and non-numeric
|
| 338 |
-
character.
|
| 339 |
used in the output of `:verbose command UserCmd`
|
| 340 |
White space between the filename, the separator and
|
| 341 |
the number are ignored.
|
|
@@ -387,7 +387,7 @@ is to use "path\[[]abc]", this matches the file "path\[abc]".
|
|
| 387 |
|
| 388 |
*starstar-wildcard*
|
| 389 |
Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but
|
| 390 |
-
it may depend on your 'shell' setting on Unix and macOS.
|
| 391 |
correctly for zsh; for bash this requires at least bash version >= 4.X).
|
| 392 |
This allows searching a directory tree. This goes up to 100 directories deep.
|
| 393 |
Note there are some commands where this works slightly differently, see
|
|
@@ -400,7 +400,7 @@ Finds files:
|
|
| 400 |
a/b/c/d/ccc.txt ~
|
| 401 |
When non-wildcard characters are used right before or after "**" these are
|
| 402 |
only matched in the top directory. They are not used for directories further
|
| 403 |
-
down in the tree.
|
| 404 |
:n /usr/inc**/types.h
|
| 405 |
Finds files:
|
| 406 |
/usr/include/types.h ~
|
|
@@ -418,9 +418,9 @@ argument, for example: >
|
|
| 418 |
Vim will run the command in backticks using the 'shell' and use the standard
|
| 419 |
output as argument for the given Vim command (error messages from the shell
|
| 420 |
command will be discarded).
|
| 421 |
-
To see what shell command Vim is running, set the 'verbose' option to 4.
|
| 422 |
the shell command returns a non-zero exit code, an error message will be
|
| 423 |
-
displayed and the Vim command will be aborted.
|
| 424 |
always return zero like so: >
|
| 425 |
:next `find . -name ver\\*.c -print \|\| true`
|
| 426 |
|
|
@@ -669,7 +669,7 @@ list of the current window.
|
|
| 669 |
[count] is used like with |:argadd|.
|
| 670 |
If the current file cannot be |abandon|ed {name}s will
|
| 671 |
still be added to the argument list, but won't be
|
| 672 |
-
edited.
|
| 673 |
Also see |++opt| and |+cmd|.
|
| 674 |
|
| 675 |
:[count]arga[dd] {name} ... *:arga* *:argadd* *E479*
|
|
@@ -1429,7 +1429,7 @@ present in 'cpoptions' and "!" is not used in the command.
|
|
| 1429 |
Also see |getcwd()|.
|
| 1430 |
*:pwd-verbose*
|
| 1431 |
When 'verbose' is non-zero, |:pwd| will also display
|
| 1432 |
-
what scope the current directory was set.
|
| 1433 |
|
| 1434 |
" Set by :cd
|
| 1435 |
:verbose pwd
|
|
@@ -1459,8 +1459,8 @@ When a |:tcd| command has been used for a tab page, the specified directory
|
|
| 1459 |
becomes the current directory for the current tab page and the current window.
|
| 1460 |
The current directory of other tab pages is not affected. When jumping to
|
| 1461 |
another tab page, the current directory is changed to the last specified local
|
| 1462 |
-
directory for that tab page.
|
| 1463 |
-
the global current directory is used.
|
| 1464 |
|
| 1465 |
When a |:cd| command is used, the current window and tab page will lose the
|
| 1466 |
local current directory and will use the global current directory from now on.
|
|
@@ -1588,7 +1588,7 @@ To test for blowfish support you can use these conditions: >
|
|
| 1588 |
has('crypt-blowfish')
|
| 1589 |
has('crypt-blowfish2')
|
| 1590 |
This works since Vim 7.4.1099 while blowfish support was added earlier.
|
| 1591 |
-
Thus the condition failing doesn't mean blowfish is not supported.
|
| 1592 |
test for blowfish with: >
|
| 1593 |
v:version >= 703
|
| 1594 |
And for blowfish2 with: >
|
|
@@ -1652,7 +1652,7 @@ Notes:
|
|
| 1652 |
algorithm in detail.
|
| 1653 |
- The implementation of 'cryptmethod' "blowfish" has a flaw. It is possible
|
| 1654 |
to crack the first 64 bytes of a file and in some circumstances more of the
|
| 1655 |
-
file.
|
| 1656 |
supported by Vim 7.3 and 7.4. The "zip" method is even weaker.
|
| 1657 |
- Vim originates from the Netherlands. That is where the sources come from.
|
| 1658 |
Thus the encryption code is not exported from the USA.
|
|
@@ -1744,24 +1744,24 @@ ask if you really want to overwrite the file:
|
|
| 1744 |
WARNING: The file has been changed since reading it!!!
|
| 1745 |
Do you really want to write to it (y/n)?
|
| 1746 |
|
| 1747 |
-
If you hit 'y' Vim will continue writing the file. If you hit 'n' the write
|
| 1748 |
-
aborted. If you used ":wq" or "ZZ" Vim will not exit, you will get another
|
| 1749 |
chance to write the file.
|
| 1750 |
|
| 1751 |
The message would normally mean that somebody has written to the file after
|
| 1752 |
the edit session started. This could be another person, in which case you
|
| 1753 |
probably want to check if your changes to the file and the changes from the
|
| 1754 |
-
other person should be merged. Write the file under another name and check
|
| 1755 |
-
differences (the "diff" program can be used for this).
|
| 1756 |
|
| 1757 |
It is also possible that you modified the file yourself, from another edit
|
| 1758 |
session or with another command (e.g., a filter command). Then you will know
|
| 1759 |
which version of the file you want to keep.
|
| 1760 |
|
| 1761 |
The accuracy of the time check depends on the filesystem. On Unix it is
|
| 1762 |
-
usually sub-second. With old file systems and on MS-Windows it is normally
|
| 1763 |
-
second. Use `has('nanotime')` to check if sub-second time stamp checks
|
| 1764 |
-
available.
|
| 1765 |
|
| 1766 |
There is one situation where you get the message while there is nothing wrong:
|
| 1767 |
On a Win32 system on the day daylight saving time starts. There is something
|
|
@@ -1791,8 +1791,8 @@ There are three different types of searching:
|
|
| 1791 |
- It ONLY matches directories.
|
| 1792 |
- It matches up to 30 directories deep by default, so you can use it to
|
| 1793 |
search an entire directory tree
|
| 1794 |
-
- The maximum number of levels matched can be given by appending a
|
| 1795 |
-
|
| 1796 |
Thus '/usr/**2' can match: >
|
| 1797 |
/usr
|
| 1798 |
/usr/include
|
|
|
|
| 1 |
+
*editing.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 134 |
You can use this file if you discover that you need the original file. See
|
| 135 |
also the 'patchmode' option. The name of the backup file is normally the same
|
| 136 |
as the original file with 'backupext' appended. The default "~" is a bit
|
| 137 |
+
strange to avoid accidentally overwriting existing files. If you prefer
|
| 138 |
+
".bak" change the 'backupext' option. Extra dots are replaced with '_' on
|
| 139 |
+
MS-Windows machines, when Vim has detected that an MS-DOS-like filesystem is
|
| 140 |
+
being used (e.g., messydos or crossdos) or when the 'shortname' option is on.
|
| 141 |
+
The backup file can be placed in another directory by setting 'backupdir'.
|
| 142 |
|
| 143 |
*auto-shortname*
|
| 144 |
Technical: On the Amiga you can use 30 characters for a file name. But on an
|
|
|
|
| 297 |
Mnemonic: "goto file".
|
| 298 |
Uses the 'isfname' option to find out which characters
|
| 299 |
are supposed to be in a file name. Trailing
|
| 300 |
+
punctuation characters ".,:;!" are ignored. Escaped
|
| 301 |
spaces "\ " are reduced to a single space.
|
| 302 |
Uses the 'path' option as a list of directory names to
|
| 303 |
look for the file. See the 'path' option for details
|
|
|
|
| 335 |
the file.
|
| 336 |
The file name and the number must be separated by a
|
| 337 |
non-filename (see 'isfname') and non-numeric
|
| 338 |
+
character. " line " is also recognized, like it is
|
| 339 |
used in the output of `:verbose command UserCmd`
|
| 340 |
White space between the filename, the separator and
|
| 341 |
the number are ignored.
|
|
|
|
| 387 |
|
| 388 |
*starstar-wildcard*
|
| 389 |
Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but
|
| 390 |
+
it may depend on your 'shell' setting on Unix and macOS. It's known to work
|
| 391 |
correctly for zsh; for bash this requires at least bash version >= 4.X).
|
| 392 |
This allows searching a directory tree. This goes up to 100 directories deep.
|
| 393 |
Note there are some commands where this works slightly differently, see
|
|
|
|
| 400 |
a/b/c/d/ccc.txt ~
|
| 401 |
When non-wildcard characters are used right before or after "**" these are
|
| 402 |
only matched in the top directory. They are not used for directories further
|
| 403 |
+
down in the tree. For example: >
|
| 404 |
:n /usr/inc**/types.h
|
| 405 |
Finds files:
|
| 406 |
/usr/include/types.h ~
|
|
|
|
| 418 |
Vim will run the command in backticks using the 'shell' and use the standard
|
| 419 |
output as argument for the given Vim command (error messages from the shell
|
| 420 |
command will be discarded).
|
| 421 |
+
To see what shell command Vim is running, set the 'verbose' option to 4. When
|
| 422 |
the shell command returns a non-zero exit code, an error message will be
|
| 423 |
+
displayed and the Vim command will be aborted. To avoid this make the shell
|
| 424 |
always return zero like so: >
|
| 425 |
:next `find . -name ver\\*.c -print \|\| true`
|
| 426 |
|
|
|
|
| 669 |
[count] is used like with |:argadd|.
|
| 670 |
If the current file cannot be |abandon|ed {name}s will
|
| 671 |
still be added to the argument list, but won't be
|
| 672 |
+
edited. No check for duplicates is done.
|
| 673 |
Also see |++opt| and |+cmd|.
|
| 674 |
|
| 675 |
:[count]arga[dd] {name} ... *:arga* *:argadd* *E479*
|
|
|
|
| 1429 |
Also see |getcwd()|.
|
| 1430 |
*:pwd-verbose*
|
| 1431 |
When 'verbose' is non-zero, |:pwd| will also display
|
| 1432 |
+
what scope the current directory was set. Example: >
|
| 1433 |
|
| 1434 |
" Set by :cd
|
| 1435 |
:verbose pwd
|
|
|
|
| 1459 |
becomes the current directory for the current tab page and the current window.
|
| 1460 |
The current directory of other tab pages is not affected. When jumping to
|
| 1461 |
another tab page, the current directory is changed to the last specified local
|
| 1462 |
+
directory for that tab page. If the current tab has no local current
|
| 1463 |
+
directory the global current directory is used.
|
| 1464 |
|
| 1465 |
When a |:cd| command is used, the current window and tab page will lose the
|
| 1466 |
local current directory and will use the global current directory from now on.
|
|
|
|
| 1588 |
has('crypt-blowfish')
|
| 1589 |
has('crypt-blowfish2')
|
| 1590 |
This works since Vim 7.4.1099 while blowfish support was added earlier.
|
| 1591 |
+
Thus the condition failing doesn't mean blowfish is not supported. You can
|
| 1592 |
test for blowfish with: >
|
| 1593 |
v:version >= 703
|
| 1594 |
And for blowfish2 with: >
|
|
|
|
| 1652 |
algorithm in detail.
|
| 1653 |
- The implementation of 'cryptmethod' "blowfish" has a flaw. It is possible
|
| 1654 |
to crack the first 64 bytes of a file and in some circumstances more of the
|
| 1655 |
+
file. Use of it is not recommended, but it's still the strongest method
|
| 1656 |
supported by Vim 7.3 and 7.4. The "zip" method is even weaker.
|
| 1657 |
- Vim originates from the Netherlands. That is where the sources come from.
|
| 1658 |
Thus the encryption code is not exported from the USA.
|
|
|
|
| 1744 |
WARNING: The file has been changed since reading it!!!
|
| 1745 |
Do you really want to write to it (y/n)?
|
| 1746 |
|
| 1747 |
+
If you hit 'y' Vim will continue writing the file. If you hit 'n' the write
|
| 1748 |
+
is aborted. If you used ":wq" or "ZZ" Vim will not exit, you will get another
|
| 1749 |
chance to write the file.
|
| 1750 |
|
| 1751 |
The message would normally mean that somebody has written to the file after
|
| 1752 |
the edit session started. This could be another person, in which case you
|
| 1753 |
probably want to check if your changes to the file and the changes from the
|
| 1754 |
+
other person should be merged. Write the file under another name and check
|
| 1755 |
+
for differences (the "diff" program can be used for this).
|
| 1756 |
|
| 1757 |
It is also possible that you modified the file yourself, from another edit
|
| 1758 |
session or with another command (e.g., a filter command). Then you will know
|
| 1759 |
which version of the file you want to keep.
|
| 1760 |
|
| 1761 |
The accuracy of the time check depends on the filesystem. On Unix it is
|
| 1762 |
+
usually sub-second. With old file systems and on MS-Windows it is normally
|
| 1763 |
+
one second. Use `has('nanotime')` to check if sub-second time stamp checks
|
| 1764 |
+
are available.
|
| 1765 |
|
| 1766 |
There is one situation where you get the message while there is nothing wrong:
|
| 1767 |
On a Win32 system on the day daylight saving time starts. There is something
|
|
|
|
| 1791 |
- It ONLY matches directories.
|
| 1792 |
- It matches up to 30 directories deep by default, so you can use it to
|
| 1793 |
search an entire directory tree
|
| 1794 |
+
- The maximum number of levels matched can be given by appending a
|
| 1795 |
+
number to '**'.
|
| 1796 |
Thus '/usr/**2' can match: >
|
| 1797 |
/usr
|
| 1798 |
/usr/include
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*eval.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -86,7 +86,7 @@ Job Used for a job, see |job_start()|. *Job* *Jobs*
|
|
| 86 |
|
| 87 |
Channel Used for a channel, see |ch_open()|. *Channel* *Channels*
|
| 88 |
|
| 89 |
-
Blob Binary Large Object.
|
| 90 |
for details
|
| 91 |
Example: 0zFF00ED015DAF
|
| 92 |
0z is an empty Blob.
|
|
@@ -1020,7 +1020,7 @@ Blob modification ~
|
|
| 1020 |
To change a specific byte of a blob use |:let| this way: >
|
| 1021 |
:let blob[4] = 0x44
|
| 1022 |
|
| 1023 |
-
When the index is just one beyond the end of the Blob, it is appended.
|
| 1024 |
higher index is an error.
|
| 1025 |
|
| 1026 |
To change a sequence of bytes the [:] notation can be used: >
|
|
@@ -1536,8 +1536,8 @@ byte under the cursor: >
|
|
| 1536 |
|
| 1537 |
In |Vim9| script: *E1147* *E1148*
|
| 1538 |
If expr10 is a String this results in a String that contains the expr1'th
|
| 1539 |
-
single character (including any composing characters) from expr10. To use
|
| 1540 |
-
indexes use |strpart()|.
|
| 1541 |
|
| 1542 |
Index zero gives the first byte or character. Careful: text column numbers
|
| 1543 |
start with one!
|
|
@@ -1595,7 +1595,7 @@ Examples: >
|
|
| 1595 |
*slice*
|
| 1596 |
If expr10 is a |List| this results in a new |List| with the items indicated by
|
| 1597 |
the indexes expr1a and expr1b. This works like with a String, as explained
|
| 1598 |
-
just above.
|
| 1599 |
:let l = mylist[:3] " first four items
|
| 1600 |
:let l = mylist[4:4] " List with one item
|
| 1601 |
:let l = mylist[:] " shallow copy of a List
|
|
@@ -1786,8 +1786,8 @@ A string constant accepts these special characters:
|
|
| 1786 |
Don't use <Char-xxxx> to get a UTF-8 character, use \uxxxx as
|
| 1787 |
mentioned above.
|
| 1788 |
\<*xxx> Like \<xxx> but prepends a modifier instead of including it in the
|
| 1789 |
-
character. E.g. "\<C-w>" is one character 0x17 while "\<*C-w>" is
|
| 1790 |
-
bytes: 3 for the CTRL modifier and then character "W".
|
| 1791 |
|
| 1792 |
Note that "\xff" is stored as the byte 255, which may be invalid in some
|
| 1793 |
encodings. Use "\u00ff" to store character 255 according to the current value
|
|
@@ -2185,7 +2185,7 @@ variables for each buffer. Use local buffer variables instead |b:var|.
|
|
| 2185 |
PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:*
|
| 2186 |
*E963* *E1063*
|
| 2187 |
Most variables are read-only, when a variable can be set by the user, it will
|
| 2188 |
-
be mentioned at the variable description below.
|
| 2189 |
|
| 2190 |
*v:argv* *argv-variable*
|
| 2191 |
v:argv The command line arguments Vim was invoked with. This is a
|
|
@@ -2198,11 +2198,11 @@ v:beval_col The number of the column, over which the mouse pointer is.
|
|
| 2198 |
Only valid while evaluating the 'balloonexpr' option.
|
| 2199 |
|
| 2200 |
*v:beval_bufnr* *beval_bufnr-variable*
|
| 2201 |
-
v:beval_bufnr The number of the buffer, over which the mouse pointer is.
|
| 2202 |
-
valid while evaluating the 'balloonexpr' option.
|
| 2203 |
|
| 2204 |
*v:beval_lnum* *beval_lnum-variable*
|
| 2205 |
-
v:beval_lnum The number of the line, over which the mouse pointer is.
|
| 2206 |
valid while evaluating the 'balloonexpr' option.
|
| 2207 |
|
| 2208 |
*v:beval_text* *beval_text-variable*
|
|
@@ -2215,9 +2215,9 @@ v:beval_text The text under or after the mouse pointer. Usually a word as
|
|
| 2215 |
Only valid while evaluating the 'balloonexpr' option.
|
| 2216 |
|
| 2217 |
*v:beval_winnr* *beval_winnr-variable*
|
| 2218 |
-
v:beval_winnr The number of the window, over which the mouse pointer is.
|
| 2219 |
-
valid while evaluating the 'balloonexpr' option. The
|
| 2220 |
-
window has number zero (unlike most other places where a
|
| 2221 |
window gets a number).
|
| 2222 |
|
| 2223 |
*v:beval_winid* *beval_winid-variable*
|
|
@@ -2280,8 +2280,8 @@ v:collate The current locale setting for collation order of the runtime
|
|
| 2280 |
See |multi-lang|.
|
| 2281 |
|
| 2282 |
*v:colornames*
|
| 2283 |
-
v:colornames
|
| 2284 |
-
color names can be used with the |highlight-guifg|,
|
| 2285 |
|highlight-guibg|, and |highlight-guisp| parameters.
|
| 2286 |
|
| 2287 |
The key values in the dictionary (the color names) should be
|
|
@@ -2289,20 +2289,20 @@ v:colornames A dictionary that maps color names to hex color strings. These
|
|
| 2289 |
name.
|
| 2290 |
|
| 2291 |
Updating an entry in v:colornames has no immediate effect on
|
| 2292 |
-
the syntax highlighting.
|
| 2293 |
-
colorscheme script) need to be re-evaluated in order to use
|
| 2294 |
-
the updated color values.
|
| 2295 |
|
| 2296 |
:let v:colornames['fuscia'] = '#cf3ab4'
|
| 2297 |
:let v:colornames['mauve'] = '#915f6d'
|
| 2298 |
:highlight Normal guifg=fuscia guibg=mauve
|
| 2299 |
<
|
| 2300 |
This cannot be used to override the |cterm-colors| but it can
|
| 2301 |
-
be used to override other colors.
|
| 2302 |
defined in the `colors/lists/default.vim` (previously defined
|
| 2303 |
-
in |rgb.txt|).
|
| 2304 |
recommended practice is to set a color entry only when it does
|
| 2305 |
-
not already exist.
|
| 2306 |
|
| 2307 |
:call extend(v:colornames, {
|
| 2308 |
\ 'fuscia': '#cf3ab4',
|
|
@@ -2310,20 +2310,20 @@ v:colornames A dictionary that maps color names to hex color strings. These
|
|
| 2310 |
\ }, 'keep')
|
| 2311 |
<
|
| 2312 |
Using |extend()| with the 'keep' option updates each color only
|
| 2313 |
-
if it did not exist in |v:colornames|.
|
| 2314 |
user to choose the precise color value for a common name
|
| 2315 |
by setting it in their |.vimrc|.
|
| 2316 |
|
| 2317 |
It is possible to remove entries from this dictionary but
|
| 2318 |
doing so is NOT recommended, because it is disruptive to
|
| 2319 |
-
other scripts.
|
| 2320 |
result because the |:colorscheme| and |:highlight| commands
|
| 2321 |
will both automatically load all `colors/lists/default.vim`
|
| 2322 |
color scripts.
|
| 2323 |
|
| 2324 |
You can make changes to that file, but make sure to add new
|
| 2325 |
-
keys instead of updating existing ones, otherwise Vim will
|
| 2326 |
-
loading the file (thinking it hasn't been changed).
|
| 2327 |
|
| 2328 |
*v:completed_item* *completed_item-variable*
|
| 2329 |
v:completed_item
|
|
@@ -2426,7 +2426,7 @@ v:exception The value of the exception most recently caught and not
|
|
| 2426 |
< Output: "caught oops".
|
| 2427 |
|
| 2428 |
*v:false* *false-variable*
|
| 2429 |
-
v:false A Number with value zero.
|
| 2430 |
|json_encode()|.
|
| 2431 |
When used as a string this evaluates to "v:false". >
|
| 2432 |
echo v:false
|
|
@@ -2519,7 +2519,7 @@ v:foldstart Used for 'foldtext': first line of closed fold.
|
|
| 2519 |
*v:hlsearch* *hlsearch-variable*
|
| 2520 |
v:hlsearch Variable that indicates whether search highlighting is on.
|
| 2521 |
Setting it makes sense only if 'hlsearch' is enabled which
|
| 2522 |
-
requires |+extra_search|.
|
| 2523 |
like the |:nohlsearch| command, setting it to one acts like >
|
| 2524 |
let &hlsearch = &hlsearch
|
| 2525 |
< Note that the value is restored when returning from a
|
|
@@ -2587,7 +2587,7 @@ v:mouse_col Column number for a mouse click obtained with |getchar()|.
|
|
| 2587 |
value is zero when there was no mouse button click.
|
| 2588 |
|
| 2589 |
*v:none* *none-variable* *None*
|
| 2590 |
-
v:none An empty String.
|
| 2591 |
|json_encode()|.
|
| 2592 |
This can also be used as a function argument to use the
|
| 2593 |
default value, see |none-function_argument|.
|
|
@@ -2601,7 +2601,7 @@ v:none An empty String. Used to put an empty item in JSON. See
|
|
| 2601 |
an error. Instead, use `is v:none` and `isnot v:none` .
|
| 2602 |
|
| 2603 |
*v:null* *null-variable*
|
| 2604 |
-
v:null An empty String.
|
| 2605 |
|json_encode()|.
|
| 2606 |
When used as a number this evaluates to zero.
|
| 2607 |
When used as a string this evaluates to "v:null". >
|
|
@@ -2637,27 +2637,27 @@ v:oldfiles List of file names that is loaded from the |viminfo| file on
|
|
| 2637 |
{only when compiled with the |+viminfo| feature}
|
| 2638 |
|
| 2639 |
*v:option_new*
|
| 2640 |
-
v:option_new New value of the option.
|
| 2641 |
autocommand.
|
| 2642 |
*v:option_old*
|
| 2643 |
-
v:option_old Old value of the option.
|
| 2644 |
-
autocommand.
|
| 2645 |
-
kind of option this is either the local old value or the
|
| 2646 |
global old value.
|
| 2647 |
*v:option_oldlocal*
|
| 2648 |
v:option_oldlocal
|
| 2649 |
-
Old local value of the option.
|
| 2650 |
|OptionSet| autocommand.
|
| 2651 |
*v:option_oldglobal*
|
| 2652 |
v:option_oldglobal
|
| 2653 |
-
Old global value of the option.
|
| 2654 |
|OptionSet| autocommand.
|
| 2655 |
*v:option_type*
|
| 2656 |
-
v:option_type Scope of the set command.
|
| 2657 |
-
|OptionSet| autocommand.
|
| 2658 |
*v:option_command*
|
| 2659 |
v:option_command
|
| 2660 |
-
Command used to set the option.
|
| 2661 |
|OptionSet| autocommand.
|
| 2662 |
value option was set via ~
|
| 2663 |
"setlocal" |:setlocal| or ":let l:xxx"
|
|
@@ -2704,7 +2704,7 @@ v:progpath Contains the command with which Vim was invoked, in a form
|
|
| 2704 |
To get the full path use: >
|
| 2705 |
echo exepath(v:progpath)
|
| 2706 |
< If the command has a relative path it will be expanded to the
|
| 2707 |
-
full path, so that it still works after `:cd`.
|
| 2708 |
"./vim" results in "/home/user/path/to/vim/src/vim".
|
| 2709 |
On Linux and other systems it will always be the full path.
|
| 2710 |
On Mac it may just be "vim" and using exepath() as mentioned
|
|
@@ -2871,9 +2871,9 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
|
| 2871 |
terminal. The TermResponseAll event is also fired, with
|
| 2872 |
<amatch> set to "version". You can use |terminalprops()| to
|
| 2873 |
see what Vim figured out about the terminal.
|
| 2874 |
-
The response from a new xterm is: "<Esc>[> Pp ; Pv ; Pc c".
|
| 2875 |
-
is the terminal type: 0 for vt100 and 1 for vt220. Pv is
|
| 2876 |
-
patch level (since this was introduced in patch 95, it's
|
| 2877 |
always 95 or higher). Pc is always zero.
|
| 2878 |
If Pv is 141 or higher then Vim will try to request terminal
|
| 2879 |
codes. This only works with xterm |xterm-codes|.
|
|
@@ -2882,7 +2882,7 @@ v:termresponse The escape sequence returned by the terminal for the |t_RV|
|
|
| 2882 |
*v:termblinkresp* *termblinkresp-variable*
|
| 2883 |
v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
|
| 2884 |
termcap entry. This is used to find out whether the terminal
|
| 2885 |
-
cursor is blinking.
|
| 2886 |
this variable is set, the TermResponseAll autocommand event is
|
| 2887 |
fired, with <amatch> set to "cursorblink".
|
| 2888 |
|
|
@@ -2951,7 +2951,7 @@ v:throwpoint The point where the exception most recently caught and not
|
|
| 2951 |
< Output: "Exception from test.vim, line 2"
|
| 2952 |
|
| 2953 |
*v:true* *true-variable*
|
| 2954 |
-
v:true A Number with value one.
|
| 2955 |
|json_encode()|.
|
| 2956 |
When used as a string this evaluates to "v:true". >
|
| 2957 |
echo v:true
|
|
@@ -2991,7 +2991,8 @@ v:vim_did_enter Zero until most of startup is done. It is set to one just
|
|
| 2991 |
before |VimEnter| autocommands are triggered.
|
| 2992 |
|
| 2993 |
*v:warningmsg* *warningmsg-variable*
|
| 2994 |
-
v:warningmsg Last given warning message. It's allowed to set this
|
|
|
|
| 2995 |
|
| 2996 |
*v:wayland_display* *wayland_display-variable*
|
| 2997 |
v:wayland_display
|
|
@@ -3289,7 +3290,8 @@ text...
|
|
| 3289 |
END
|
| 3290 |
< There can be multiple Vim expressions in a single line
|
| 3291 |
but an expression cannot span multiple lines. If any
|
| 3292 |
-
expression evaluation fails, then the assignment
|
|
|
|
| 3293 |
|
| 3294 |
{endmarker} must not contain white space.
|
| 3295 |
{endmarker} cannot start with a lower case character.
|
|
@@ -5212,7 +5214,7 @@ $VIMRUNTIME/plugin/openPlugin.vim
|
|
| 5212 |
dist#vim9#Open(file: string) ~
|
| 5213 |
|
| 5214 |
Opens `path` with the system default handler (macOS `open`, Windows
|
| 5215 |
-
`explorer.exe`, Linux `xdg-open`, …).
|
| 5216 |
string specified in the variable is used instead.
|
| 5217 |
|
| 5218 |
The |:Open| user command uses file completion for its argument.
|
|
@@ -5224,11 +5226,11 @@ This function is by default called using the gx mapping. In visual mode
|
|
| 5224 |
tries to open the visually selected text.
|
| 5225 |
|
| 5226 |
Associated setting variables:
|
| 5227 |
-
`g:gx_word`: control how gx picks up the text under the cursor.
|
| 5228 |
`g:netrw_gx` as a fallback for backward compatibility.
|
| 5229 |
(default: `<cfile>`)
|
| 5230 |
|
| 5231 |
-
`g:nogx`: disables the gx mapping.
|
| 5232 |
backward compatibility. (default: `unset`)
|
| 5233 |
|
| 5234 |
|
|
@@ -5242,7 +5244,7 @@ Usage: >vim
|
|
| 5242 |
*dist#vim9#Launch()* *:Launch*
|
| 5243 |
dist#vim9#Launch(file: string) ~
|
| 5244 |
|
| 5245 |
-
Launches <args> with the appropriate system programs.
|
| 5246 |
GUI programs within Vim.
|
| 5247 |
|
| 5248 |
The |:Launch| user command uses shell completion for its first argument.
|
|
|
|
| 1 |
+
*eval.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 86 |
|
| 87 |
Channel Used for a channel, see |ch_open()|. *Channel* *Channels*
|
| 88 |
|
| 89 |
+
Blob Binary Large Object. Stores any sequence of bytes. See |Blob|
|
| 90 |
for details
|
| 91 |
Example: 0zFF00ED015DAF
|
| 92 |
0z is an empty Blob.
|
|
|
|
| 1020 |
To change a specific byte of a blob use |:let| this way: >
|
| 1021 |
:let blob[4] = 0x44
|
| 1022 |
|
| 1023 |
+
When the index is just one beyond the end of the Blob, it is appended. Any
|
| 1024 |
higher index is an error.
|
| 1025 |
|
| 1026 |
To change a sequence of bytes the [:] notation can be used: >
|
|
|
|
| 1536 |
|
| 1537 |
In |Vim9| script: *E1147* *E1148*
|
| 1538 |
If expr10 is a String this results in a String that contains the expr1'th
|
| 1539 |
+
single character (including any composing characters) from expr10. To use
|
| 1540 |
+
byte indexes use |strpart()|.
|
| 1541 |
|
| 1542 |
Index zero gives the first byte or character. Careful: text column numbers
|
| 1543 |
start with one!
|
|
|
|
| 1595 |
*slice*
|
| 1596 |
If expr10 is a |List| this results in a new |List| with the items indicated by
|
| 1597 |
the indexes expr1a and expr1b. This works like with a String, as explained
|
| 1598 |
+
just above. Also see |sublist| below. Examples: >
|
| 1599 |
:let l = mylist[:3] " first four items
|
| 1600 |
:let l = mylist[4:4] " List with one item
|
| 1601 |
:let l = mylist[:] " shallow copy of a List
|
|
|
|
| 1786 |
Don't use <Char-xxxx> to get a UTF-8 character, use \uxxxx as
|
| 1787 |
mentioned above.
|
| 1788 |
\<*xxx> Like \<xxx> but prepends a modifier instead of including it in the
|
| 1789 |
+
character. E.g. "\<C-w>" is one character 0x17 while "\<*C-w>" is
|
| 1790 |
+
four bytes: 3 for the CTRL modifier and then character "W".
|
| 1791 |
|
| 1792 |
Note that "\xff" is stored as the byte 255, which may be invalid in some
|
| 1793 |
encodings. Use "\u00ff" to store character 255 according to the current value
|
|
|
|
| 2185 |
PREDEFINED VIM VARIABLES *vim-variable* *v:var* *v:*
|
| 2186 |
*E963* *E1063*
|
| 2187 |
Most variables are read-only, when a variable can be set by the user, it will
|
| 2188 |
+
be mentioned at the variable description below. The type cannot be changed.
|
| 2189 |
|
| 2190 |
*v:argv* *argv-variable*
|
| 2191 |
v:argv The command line arguments Vim was invoked with. This is a
|
|
|
|
| 2198 |
Only valid while evaluating the 'balloonexpr' option.
|
| 2199 |
|
| 2200 |
*v:beval_bufnr* *beval_bufnr-variable*
|
| 2201 |
+
v:beval_bufnr The number of the buffer, over which the mouse pointer is.
|
| 2202 |
+
Only valid while evaluating the 'balloonexpr' option.
|
| 2203 |
|
| 2204 |
*v:beval_lnum* *beval_lnum-variable*
|
| 2205 |
+
v:beval_lnum The number of the line, over which the mouse pointer is. Only
|
| 2206 |
valid while evaluating the 'balloonexpr' option.
|
| 2207 |
|
| 2208 |
*v:beval_text* *beval_text-variable*
|
|
|
|
| 2215 |
Only valid while evaluating the 'balloonexpr' option.
|
| 2216 |
|
| 2217 |
*v:beval_winnr* *beval_winnr-variable*
|
| 2218 |
+
v:beval_winnr The number of the window, over which the mouse pointer is.
|
| 2219 |
+
Only valid while evaluating the 'balloonexpr' option. The
|
| 2220 |
+
first window has number zero (unlike most other places where a
|
| 2221 |
window gets a number).
|
| 2222 |
|
| 2223 |
*v:beval_winid* *beval_winid-variable*
|
|
|
|
| 2280 |
See |multi-lang|.
|
| 2281 |
|
| 2282 |
*v:colornames*
|
| 2283 |
+
v:colornames A dictionary that maps color names to hex color strings.
|
| 2284 |
+
These color names can be used with the |highlight-guifg|,
|
| 2285 |
|highlight-guibg|, and |highlight-guisp| parameters.
|
| 2286 |
|
| 2287 |
The key values in the dictionary (the color names) should be
|
|
|
|
| 2289 |
name.
|
| 2290 |
|
| 2291 |
Updating an entry in v:colornames has no immediate effect on
|
| 2292 |
+
the syntax highlighting. The highlight commands (probably in
|
| 2293 |
+
a colorscheme script) need to be re-evaluated in order to use
|
| 2294 |
+
the updated color values. For example: >
|
| 2295 |
|
| 2296 |
:let v:colornames['fuscia'] = '#cf3ab4'
|
| 2297 |
:let v:colornames['mauve'] = '#915f6d'
|
| 2298 |
:highlight Normal guifg=fuscia guibg=mauve
|
| 2299 |
<
|
| 2300 |
This cannot be used to override the |cterm-colors| but it can
|
| 2301 |
+
be used to override other colors. For example, the X11 colors
|
| 2302 |
defined in the `colors/lists/default.vim` (previously defined
|
| 2303 |
+
in |rgb.txt|). When defining new color names in a plugin, the
|
| 2304 |
recommended practice is to set a color entry only when it does
|
| 2305 |
+
not already exist. For example: >
|
| 2306 |
|
| 2307 |
:call extend(v:colornames, {
|
| 2308 |
\ 'fuscia': '#cf3ab4',
|
|
|
|
| 2310 |
\ }, 'keep')
|
| 2311 |
<
|
| 2312 |
Using |extend()| with the 'keep' option updates each color only
|
| 2313 |
+
if it did not exist in |v:colornames|. Doing so allows the
|
| 2314 |
user to choose the precise color value for a common name
|
| 2315 |
by setting it in their |.vimrc|.
|
| 2316 |
|
| 2317 |
It is possible to remove entries from this dictionary but
|
| 2318 |
doing so is NOT recommended, because it is disruptive to
|
| 2319 |
+
other scripts. It is also unlikely to achieve the desired
|
| 2320 |
result because the |:colorscheme| and |:highlight| commands
|
| 2321 |
will both automatically load all `colors/lists/default.vim`
|
| 2322 |
color scripts.
|
| 2323 |
|
| 2324 |
You can make changes to that file, but make sure to add new
|
| 2325 |
+
keys instead of updating existing ones, otherwise Vim will
|
| 2326 |
+
skip loading the file (thinking it hasn't been changed).
|
| 2327 |
|
| 2328 |
*v:completed_item* *completed_item-variable*
|
| 2329 |
v:completed_item
|
|
|
|
| 2426 |
< Output: "caught oops".
|
| 2427 |
|
| 2428 |
*v:false* *false-variable*
|
| 2429 |
+
v:false A Number with value zero. Used to put "false" in JSON. See
|
| 2430 |
|json_encode()|.
|
| 2431 |
When used as a string this evaluates to "v:false". >
|
| 2432 |
echo v:false
|
|
|
|
| 2519 |
*v:hlsearch* *hlsearch-variable*
|
| 2520 |
v:hlsearch Variable that indicates whether search highlighting is on.
|
| 2521 |
Setting it makes sense only if 'hlsearch' is enabled which
|
| 2522 |
+
requires |+extra_search|. Setting this variable to zero acts
|
| 2523 |
like the |:nohlsearch| command, setting it to one acts like >
|
| 2524 |
let &hlsearch = &hlsearch
|
| 2525 |
< Note that the value is restored when returning from a
|
|
|
|
| 2587 |
value is zero when there was no mouse button click.
|
| 2588 |
|
| 2589 |
*v:none* *none-variable* *None*
|
| 2590 |
+
v:none An empty String. Used to put an empty item in JSON. See
|
| 2591 |
|json_encode()|.
|
| 2592 |
This can also be used as a function argument to use the
|
| 2593 |
default value, see |none-function_argument|.
|
|
|
|
| 2601 |
an error. Instead, use `is v:none` and `isnot v:none` .
|
| 2602 |
|
| 2603 |
*v:null* *null-variable*
|
| 2604 |
+
v:null An empty String. Used to put "null" in JSON. See
|
| 2605 |
|json_encode()|.
|
| 2606 |
When used as a number this evaluates to zero.
|
| 2607 |
When used as a string this evaluates to "v:null". >
|
|
|
|
| 2637 |
{only when compiled with the |+viminfo| feature}
|
| 2638 |
|
| 2639 |
*v:option_new*
|
| 2640 |
+
v:option_new New value of the option. Valid while executing an |OptionSet|
|
| 2641 |
autocommand.
|
| 2642 |
*v:option_old*
|
| 2643 |
+
v:option_old Old value of the option. Valid while executing an |OptionSet|
|
| 2644 |
+
autocommand. Depending on the command used for setting and
|
| 2645 |
+
the kind of option this is either the local old value or the
|
| 2646 |
global old value.
|
| 2647 |
*v:option_oldlocal*
|
| 2648 |
v:option_oldlocal
|
| 2649 |
+
Old local value of the option. Valid while executing an
|
| 2650 |
|OptionSet| autocommand.
|
| 2651 |
*v:option_oldglobal*
|
| 2652 |
v:option_oldglobal
|
| 2653 |
+
Old global value of the option. Valid while executing an
|
| 2654 |
|OptionSet| autocommand.
|
| 2655 |
*v:option_type*
|
| 2656 |
+
v:option_type Scope of the set command. Valid while executing an
|
| 2657 |
+
|OptionSet| autocommand. Can be either "global" or "local"
|
| 2658 |
*v:option_command*
|
| 2659 |
v:option_command
|
| 2660 |
+
Command used to set the option. Valid while executing an
|
| 2661 |
|OptionSet| autocommand.
|
| 2662 |
value option was set via ~
|
| 2663 |
"setlocal" |:setlocal| or ":let l:xxx"
|
|
|
|
| 2704 |
To get the full path use: >
|
| 2705 |
echo exepath(v:progpath)
|
| 2706 |
< If the command has a relative path it will be expanded to the
|
| 2707 |
+
full path, so that it still works after `:cd`. Thus starting
|
| 2708 |
"./vim" results in "/home/user/path/to/vim/src/vim".
|
| 2709 |
On Linux and other systems it will always be the full path.
|
| 2710 |
On Mac it may just be "vim" and using exepath() as mentioned
|
|
|
|
| 2871 |
terminal. The TermResponseAll event is also fired, with
|
| 2872 |
<amatch> set to "version". You can use |terminalprops()| to
|
| 2873 |
see what Vim figured out about the terminal.
|
| 2874 |
+
The response from a new xterm is: "<Esc>[> Pp ; Pv ; Pc c".
|
| 2875 |
+
Pp is the terminal type: 0 for vt100 and 1 for vt220. Pv is
|
| 2876 |
+
the patch level (since this was introduced in patch 95, it's
|
| 2877 |
always 95 or higher). Pc is always zero.
|
| 2878 |
If Pv is 141 or higher then Vim will try to request terminal
|
| 2879 |
codes. This only works with xterm |xterm-codes|.
|
|
|
|
| 2882 |
*v:termblinkresp* *termblinkresp-variable*
|
| 2883 |
v:termblinkresp The escape sequence returned by the terminal for the |t_RC|
|
| 2884 |
termcap entry. This is used to find out whether the terminal
|
| 2885 |
+
cursor is blinking. This is used by |term_getcursor()|. When
|
| 2886 |
this variable is set, the TermResponseAll autocommand event is
|
| 2887 |
fired, with <amatch> set to "cursorblink".
|
| 2888 |
|
|
|
|
| 2951 |
< Output: "Exception from test.vim, line 2"
|
| 2952 |
|
| 2953 |
*v:true* *true-variable*
|
| 2954 |
+
v:true A Number with value one. Used to put "true" in JSON. See
|
| 2955 |
|json_encode()|.
|
| 2956 |
When used as a string this evaluates to "v:true". >
|
| 2957 |
echo v:true
|
|
|
|
| 2991 |
before |VimEnter| autocommands are triggered.
|
| 2992 |
|
| 2993 |
*v:warningmsg* *warningmsg-variable*
|
| 2994 |
+
v:warningmsg Last given warning message. It's allowed to set this
|
| 2995 |
+
variable.
|
| 2996 |
|
| 2997 |
*v:wayland_display* *wayland_display-variable*
|
| 2998 |
v:wayland_display
|
|
|
|
| 3290 |
END
|
| 3291 |
< There can be multiple Vim expressions in a single line
|
| 3292 |
but an expression cannot span multiple lines. If any
|
| 3293 |
+
expression evaluation fails, then the assignment
|
| 3294 |
+
fails.
|
| 3295 |
|
| 3296 |
{endmarker} must not contain white space.
|
| 3297 |
{endmarker} cannot start with a lower case character.
|
|
|
|
| 5214 |
dist#vim9#Open(file: string) ~
|
| 5215 |
|
| 5216 |
Opens `path` with the system default handler (macOS `open`, Windows
|
| 5217 |
+
`explorer.exe`, Linux `xdg-open`, …). If the variable |g:Openprg| exists the
|
| 5218 |
string specified in the variable is used instead.
|
| 5219 |
|
| 5220 |
The |:Open| user command uses file completion for its argument.
|
|
|
|
| 5226 |
tries to open the visually selected text.
|
| 5227 |
|
| 5228 |
Associated setting variables:
|
| 5229 |
+
`g:gx_word`: control how gx picks up the text under the cursor. Uses
|
| 5230 |
`g:netrw_gx` as a fallback for backward compatibility.
|
| 5231 |
(default: `<cfile>`)
|
| 5232 |
|
| 5233 |
+
`g:nogx`: disables the gx mapping. Uses `g:netrw_nogx` as a fallback for
|
| 5234 |
backward compatibility. (default: `unset`)
|
| 5235 |
|
| 5236 |
|
|
|
|
| 5244 |
*dist#vim9#Launch()* *:Launch*
|
| 5245 |
dist#vim9#Launch(file: string) ~
|
| 5246 |
|
| 5247 |
+
Launches <args> with the appropriate system programs. Intended for launching
|
| 5248 |
GUI programs within Vim.
|
| 5249 |
|
| 5250 |
The |:Launch| user command uses shell completion for its first argument.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*filetype.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -530,12 +530,13 @@ g:changelog_new_date_format
|
|
| 530 |
%% insert a single '%' character
|
| 531 |
%d insert the date from above
|
| 532 |
%u insert the user from above
|
| 533 |
-
%p insert result of
|
|
|
|
| 534 |
%c where to position cursor when done
|
| 535 |
-
The default is "%d %u\n\n\t* %p%c\n\n", which
|
| 536 |
-
something like (| is where cursor will be,
|
| 537 |
-
the start of the line where it denotes the
|
| 538 |
-
of the line) >
|
| 539 |
|2003-01-14 Full Name <user@host>
|
| 540 |
|
|
| 541 |
| * prefix|
|
|
@@ -544,7 +545,8 @@ g:changelog_new_entry_format
|
|
| 544 |
The format used when creating a new entry.
|
| 545 |
The following table describes special tokens in the
|
| 546 |
string:
|
| 547 |
-
%p insert result of
|
|
|
|
| 548 |
%c where to position cursor when done
|
| 549 |
The default is "\t*%c", which produces something
|
| 550 |
similar to >
|
|
@@ -604,8 +606,9 @@ Options:
|
|
| 604 |
'expandtab' is switched on to avoid tabs as required by the Fortran
|
| 605 |
standards unless the user has set fortran_have_tabs in .vimrc.
|
| 606 |
'textwidth' is set to 80 for fixed source format whereas it is set to 132
|
| 607 |
-
for free source format.
|
| 608 |
-
variable increases the width to
|
|
|
|
| 609 |
'formatoptions' is set to break code and comment lines and to preserve long
|
| 610 |
lines. You can format comments with |gq|.
|
| 611 |
For further discussion of fortran_have_tabs and the method used for the
|
|
@@ -889,7 +892,7 @@ not running man {name} if no page is found, then use this: >
|
|
| 889 |
<
|
| 890 |
*g:ft_man_implementation*
|
| 891 |
The completion for the :Man command tries to guess which implementation of man
|
| 892 |
-
the system has.
|
| 893 |
one of these values:
|
| 894 |
'man-db' https://man-db.nongnu.org/
|
| 895 |
'' Unknown, fall back to completing shell commands
|
|
@@ -969,27 +972,27 @@ QF QUICKFIX *qf.vim* *ft-qf-plugin*
|
|
| 969 |
The "qf" filetype is used for the quickfix window, see |quickfix-window|.
|
| 970 |
|
| 971 |
The quickfix filetype plugin includes configuration for displaying the command
|
| 972 |
-
that produced the quickfix list in the |status-line|.
|
| 973 |
configure as follows: >
|
| 974 |
:let g:qf_disable_statusline = 1
|
| 975 |
|
| 976 |
|
| 977 |
R MARKDOWN *ft-rmd-plugin*
|
| 978 |
|
| 979 |
-
By default ftplugin/html.vim is not sourced.
|
| 980 |
your |vimrc|: >
|
| 981 |
let rmd_include_html = 1
|
| 982 |
|
| 983 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 984 |
-
and for Markdown code.
|
| 985 |
-
|vimrc|: >
|
| 986 |
let rmd_dynamic_comments = 0
|
| 987 |
|
| 988 |
|
| 989 |
R RESTRUCTURED TEXT *ft-rrst-plugin*
|
| 990 |
|
| 991 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 992 |
-
and for ReStructured text.
|
| 993 |
your |vimrc|: >
|
| 994 |
let rrst_dynamic_comments = 0
|
| 995 |
|
|
@@ -1006,7 +1009,7 @@ To enable this behavior, set the following variable in your vimrc: >
|
|
| 1006 |
RNOWEB *ft-rnoweb-plugin*
|
| 1007 |
|
| 1008 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 1009 |
-
and for LaTeX code.
|
| 1010 |
|vimrc|: >
|
| 1011 |
let rnw_dynamic_comments = 0
|
| 1012 |
|
|
@@ -1100,8 +1103,8 @@ To disable this behavior, set |g:zig_recommended_style| to 0: >
|
|
| 1100 |
let g:zig_recommended_style = 0
|
| 1101 |
<
|
| 1102 |
*g:zig_std_dir*
|
| 1103 |
-
The path to the Zig standard library.
|
| 1104 |
-
and appends it to the 'path' for Zig files.
|
| 1105 |
is located is system and installation method dependent.
|
| 1106 |
|
| 1107 |
One can automatically set |g:zig_std_dir| using `zig env`: >
|
|
|
|
| 1 |
+
*filetype.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 530 |
%% insert a single '%' character
|
| 531 |
%d insert the date from above
|
| 532 |
%u insert the user from above
|
| 533 |
+
%p insert result of
|
| 534 |
+
b:changelog_entry_prefix
|
| 535 |
%c where to position cursor when done
|
| 536 |
+
The default is "%d %u\n\n\t* %p%c\n\n", which
|
| 537 |
+
produces something like (| is where cursor will be,
|
| 538 |
+
unless at the start of the line where it denotes the
|
| 539 |
+
beginning of the line) >
|
| 540 |
|2003-01-14 Full Name <user@host>
|
| 541 |
|
|
| 542 |
| * prefix|
|
|
|
|
| 545 |
The format used when creating a new entry.
|
| 546 |
The following table describes special tokens in the
|
| 547 |
string:
|
| 548 |
+
%p insert result of
|
| 549 |
+
b:changelog_entry_prefix
|
| 550 |
%c where to position cursor when done
|
| 551 |
The default is "\t*%c", which produces something
|
| 552 |
similar to >
|
|
|
|
| 606 |
'expandtab' is switched on to avoid tabs as required by the Fortran
|
| 607 |
standards unless the user has set fortran_have_tabs in .vimrc.
|
| 608 |
'textwidth' is set to 80 for fixed source format whereas it is set to 132
|
| 609 |
+
for free source format. Setting the
|
| 610 |
+
fortran_extended_line_length variable increases the width to
|
| 611 |
+
132 for fixed source format.
|
| 612 |
'formatoptions' is set to break code and comment lines and to preserve long
|
| 613 |
lines. You can format comments with |gq|.
|
| 614 |
For further discussion of fortran_have_tabs and the method used for the
|
|
|
|
| 892 |
<
|
| 893 |
*g:ft_man_implementation*
|
| 894 |
The completion for the :Man command tries to guess which implementation of man
|
| 895 |
+
the system has. If it guesses wrong, you can set g:ft_man_implementation to
|
| 896 |
one of these values:
|
| 897 |
'man-db' https://man-db.nongnu.org/
|
| 898 |
'' Unknown, fall back to completing shell commands
|
|
|
|
| 972 |
The "qf" filetype is used for the quickfix window, see |quickfix-window|.
|
| 973 |
|
| 974 |
The quickfix filetype plugin includes configuration for displaying the command
|
| 975 |
+
that produced the quickfix list in the |status-line|. To disable this setting,
|
| 976 |
configure as follows: >
|
| 977 |
:let g:qf_disable_statusline = 1
|
| 978 |
|
| 979 |
|
| 980 |
R MARKDOWN *ft-rmd-plugin*
|
| 981 |
|
| 982 |
+
By default ftplugin/html.vim is not sourced. If you want it sourced, add to
|
| 983 |
your |vimrc|: >
|
| 984 |
let rmd_include_html = 1
|
| 985 |
|
| 986 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 987 |
+
and for Markdown code. If you prefer that 'formatexpr' is not set, add to
|
| 988 |
+
your |vimrc|: >
|
| 989 |
let rmd_dynamic_comments = 0
|
| 990 |
|
| 991 |
|
| 992 |
R RESTRUCTURED TEXT *ft-rrst-plugin*
|
| 993 |
|
| 994 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 995 |
+
and for ReStructured text. If you prefer that 'formatexpr' is not set, add to
|
| 996 |
your |vimrc|: >
|
| 997 |
let rrst_dynamic_comments = 0
|
| 998 |
|
|
|
|
| 1009 |
RNOWEB *ft-rnoweb-plugin*
|
| 1010 |
|
| 1011 |
The 'formatexpr' option is set dynamically with different values for R code
|
| 1012 |
+
and for LaTeX code. If you prefer that 'formatexpr' is not set, add to your
|
| 1013 |
|vimrc|: >
|
| 1014 |
let rnw_dynamic_comments = 0
|
| 1015 |
|
|
|
|
| 1103 |
let g:zig_recommended_style = 0
|
| 1104 |
<
|
| 1105 |
*g:zig_std_dir*
|
| 1106 |
+
The path to the Zig standard library. The Zig |ftplugin| reads |g:zig_std_dir|
|
| 1107 |
+
and appends it to the 'path' for Zig files. Where the Zig standard library
|
| 1108 |
is located is system and installation method dependent.
|
| 1109 |
|
| 1110 |
One can automatically set |g:zig_std_dir| using `zig env`: >
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*gui.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -164,7 +164,7 @@ window Vim is running in with these commands: >
|
|
| 164 |
*gui-IME* *iBus*
|
| 165 |
Input methods for international characters in X that rely on the XIM
|
| 166 |
framework, most notably iBus, have been known to produce undesirable results
|
| 167 |
-
in gvim.
|
| 168 |
between typing a character and it being recognized by the application.
|
| 169 |
|
| 170 |
One workaround that has been successful, for unknown reasons, is to prevent
|
|
@@ -574,8 +574,8 @@ the mouse button down on this will pop up a menu containing the item
|
|
| 574 |
which when selected, performs the operation.
|
| 575 |
|
| 576 |
To create a menu for terminal mode, use |:tlmenu| instead of |:tmenu| unlike
|
| 577 |
-
key mapping (|:tmap|).
|
| 578 |
-
tooltips for menus.
|
| 579 |
|
| 580 |
Special characters in a menu name:
|
| 581 |
|
|
@@ -851,7 +851,7 @@ not wrap.
|
|
| 851 |
|
| 852 |
Note that Vim may be in any mode when executing these commands. The menu
|
| 853 |
should be defined for Normal mode and will be executed without changing the
|
| 854 |
-
current mode.
|
| 855 |
command does not intentionally change the mode, Vim will remain in Visual
|
| 856 |
mode. Best is to use `:nnoremenu` to avoid side effects.
|
| 857 |
|
|
@@ -1019,8 +1019,8 @@ The tip is defined like this: >
|
|
| 1019 |
And delete it with: >
|
| 1020 |
:tunmenu MyMenu.Hello
|
| 1021 |
|
| 1022 |
-
Tooltips are currently only supported for the X11 and Win32 GUI. However,
|
| 1023 |
-
should appear for the other gui platforms in the not too distant future.
|
| 1024 |
|
| 1025 |
The ":tmenu" command works just like other menu commands, it uses the same
|
| 1026 |
arguments. ":tunmenu" deletes an existing menu tip, in the same way as the
|
|
@@ -1158,12 +1158,12 @@ Examples: >
|
|
| 1158 |
|
| 1159 |
See also |font-sizes|.
|
| 1160 |
|
| 1161 |
-
Note on Weights: Fonts often come with a variety of weights.
|
| 1162 |
in Windows have a value of 400 and, left unspecified, this is the value that
|
| 1163 |
-
will be used when attempting to find fonts.
|
| 1164 |
based on their weight with higher priority than the font name which means a
|
| 1165 |
Book or Medium variant of a font might be used despite specifying a Light or
|
| 1166 |
-
ExtraLight variant.
|
| 1167 |
explicitly setting a lower weight value may mitigate against this unwanted
|
| 1168 |
substitution.
|
| 1169 |
|
|
|
|
| 1 |
+
*gui.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 164 |
*gui-IME* *iBus*
|
| 165 |
Input methods for international characters in X that rely on the XIM
|
| 166 |
framework, most notably iBus, have been known to produce undesirable results
|
| 167 |
+
in gvim. These may include an inability to enter spaces, or long delays
|
| 168 |
between typing a character and it being recognized by the application.
|
| 169 |
|
| 170 |
One workaround that has been successful, for unknown reasons, is to prevent
|
|
|
|
| 574 |
which when selected, performs the operation.
|
| 575 |
|
| 576 |
To create a menu for terminal mode, use |:tlmenu| instead of |:tmenu| unlike
|
| 577 |
+
key mapping (|:tmap|). This is because |:tmenu| is already used for defining
|
| 578 |
+
tooltips for menus. See |terminal-typing|.
|
| 579 |
|
| 580 |
Special characters in a menu name:
|
| 581 |
|
|
|
|
| 851 |
|
| 852 |
Note that Vim may be in any mode when executing these commands. The menu
|
| 853 |
should be defined for Normal mode and will be executed without changing the
|
| 854 |
+
current mode. Thus if the current window is in Visual mode and the menu
|
| 855 |
command does not intentionally change the mode, Vim will remain in Visual
|
| 856 |
mode. Best is to use `:nnoremenu` to avoid side effects.
|
| 857 |
|
|
|
|
| 1019 |
And delete it with: >
|
| 1020 |
:tunmenu MyMenu.Hello
|
| 1021 |
|
| 1022 |
+
Tooltips are currently only supported for the X11 and Win32 GUI. However,
|
| 1023 |
+
they should appear for the other gui platforms in the not too distant future.
|
| 1024 |
|
| 1025 |
The ":tmenu" command works just like other menu commands, it uses the same
|
| 1026 |
arguments. ":tunmenu" deletes an existing menu tip, in the same way as the
|
|
|
|
| 1158 |
|
| 1159 |
See also |font-sizes|.
|
| 1160 |
|
| 1161 |
+
Note on Weights: Fonts often come with a variety of weights. "Normal" weights
|
| 1162 |
in Windows have a value of 400 and, left unspecified, this is the value that
|
| 1163 |
+
will be used when attempting to find fonts. Windows will often match fonts
|
| 1164 |
based on their weight with higher priority than the font name which means a
|
| 1165 |
Book or Medium variant of a font might be used despite specifying a Light or
|
| 1166 |
+
ExtraLight variant. If you are experiencing heavier weight substitution, then
|
| 1167 |
explicitly setting a lower weight value may mitigate against this unwanted
|
| 1168 |
substitution.
|
| 1169 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*gui_x11.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -602,7 +602,7 @@ your pkg-config works with your GTK+ 2: >
|
|
| 602 |
|
| 603 |
$ pkg-config --modversion gtk+-2.0
|
| 604 |
|
| 605 |
-
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3.
|
| 606 |
number of your GTK+, you can proceed; if not, you probably need to do some
|
| 607 |
system administration chores to set up pkg-config and GTK+ correctly.
|
| 608 |
|
|
|
|
| 1 |
+
*gui_x11.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 602 |
|
| 603 |
$ pkg-config --modversion gtk+-2.0
|
| 604 |
|
| 605 |
+
Replace gtk+-2.0 with gtk+-3.0 for GTK+ 3. If you get the correct version
|
| 606 |
number of your GTK+, you can proceed; if not, you probably need to do some
|
| 607 |
system administration chores to set up pkg-config and GTK+ correctly.
|
| 608 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*helphelp.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -297,9 +297,9 @@ the following pattern is used: >
|
|
| 297 |
|
| 298 |
^\w\+@\w\+:\f\+\$\s
|
| 299 |
|
| 300 |
-
This is meant to match a default bash prompt. If it doesn't match your
|
| 301 |
-
you can change the regex with the `shell_prompt` key from the
|
| 302 |
-
dictionary variable: >
|
| 303 |
|
| 304 |
let g:helptoc = {'shell_prompt': 'regex matching your shell prompt'}
|
| 305 |
|
|
@@ -456,8 +456,8 @@ This will highlight the column heading in a different color. E.g.
|
|
| 456 |
Column heading~
|
| 457 |
|
| 458 |
To separate sections in a help file, place a series of '=' characters in a
|
| 459 |
-
line starting from the first column. The section separator line is
|
| 460 |
-
differently.
|
| 461 |
|
| 462 |
To quote a block of ex-commands verbatim, place a greater than (>) character
|
| 463 |
at the end of the line before the block and a less than (<) character as the
|
|
|
|
| 1 |
+
*helphelp.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 297 |
|
| 298 |
^\w\+@\w\+:\f\+\$\s
|
| 299 |
|
| 300 |
+
This is meant to match a default bash prompt. If it doesn't match your
|
| 301 |
+
prompt, you can change the regex with the `shell_prompt` key from the
|
| 302 |
+
`g:helptoc` dictionary variable: >
|
| 303 |
|
| 304 |
let g:helptoc = {'shell_prompt': 'regex matching your shell prompt'}
|
| 305 |
|
|
|
|
| 456 |
Column heading~
|
| 457 |
|
| 458 |
To separate sections in a help file, place a series of '=' characters in a
|
| 459 |
+
line starting from the first column. The section separator line is
|
| 460 |
+
highlighted differently.
|
| 461 |
|
| 462 |
To quote a block of ex-commands verbatim, place a greater than (>) character
|
| 463 |
at the end of the line before the block and a less than (<) character as the
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_cscop.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Andy Kahn
|
|
@@ -255,7 +255,7 @@ started will have no effect!
|
|
| 255 |
*cscopequickfix* *csqf* *E469*
|
| 256 |
{not available when compiled without the |+quickfix| feature}
|
| 257 |
'cscopequickfix' specifies whether to use quickfix window to show cscope
|
| 258 |
-
results. This is a list of comma-separated values.
|
| 259 |
|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
|
| 260 |
'+' indicates that results must be appended to quickfix window,
|
| 261 |
'-' implies previous results clearance, '0' or command absence - don't use
|
|
|
|
| 1 |
+
*if_cscop.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Andy Kahn
|
|
|
|
| 255 |
*cscopequickfix* *csqf* *E469*
|
| 256 |
{not available when compiled without the |+quickfix| feature}
|
| 257 |
'cscopequickfix' specifies whether to use quickfix window to show cscope
|
| 258 |
+
results. This is a list of comma-separated values. Each item consists of
|
| 259 |
|cscope-find| command (s, g, d, c, t, e, f, i or a) and flag (+, - or 0).
|
| 260 |
'+' indicates that results must be appended to quickfix window,
|
| 261 |
'-' implies previous results clearance, '0' or command absence - don't use
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_lua.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Luis Carvalho
|
|
@@ -71,7 +71,7 @@ If you use LuaJIT you can also use this: >
|
|
| 71 |
argument being set to the text of each line in turn,
|
| 72 |
without a trailing <EOL>, and the current line number.
|
| 73 |
If the value returned by the function is a string it
|
| 74 |
-
becomes the text of the line in the current turn.
|
| 75 |
default for [range] is the whole file: "1,$".
|
| 76 |
|
| 77 |
Examples:
|
|
@@ -96,14 +96,14 @@ Examples:
|
|
| 96 |
<
|
| 97 |
|
| 98 |
All these commands execute a Lua chunk from either the command line (:lua and
|
| 99 |
-
:luado) or a file (:luafile) with the given line [range].
|
| 100 |
-
interpreter, each chunk has its own scope and so only global variables are
|
| 101 |
-
shared between command calls.
|
| 102 |
addition, Lua "print" function has its output redirected to the Vim message
|
| 103 |
area, with arguments separated by a white space instead of a tab.
|
| 104 |
|
| 105 |
Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
|
| 106 |
-
and manage buffers (|lua-buffer|) and windows (|lua-window|).
|
| 107 |
procedures that alter buffer content, open new buffers, and change cursor
|
| 108 |
position are restricted when the command is executed in the |sandbox|.
|
| 109 |
|
|
@@ -111,18 +111,18 @@ position are restricted when the command is executed in the |sandbox|.
|
|
| 111 |
==============================================================================
|
| 112 |
2. The vim module *lua-vim*
|
| 113 |
|
| 114 |
-
Lua interfaces Vim through the "vim" module.
|
| 115 |
-
input range are stored in "vim.firstline" and "vim.lastline" respectively.
|
| 116 |
-
module also includes routines for buffer, window, and current line
|
| 117 |
-
Vim evaluation and command execution, and others.
|
| 118 |
|
| 119 |
vim.list([arg]) Returns an empty list or, if "arg" is a Lua
|
| 120 |
table with numeric keys 1, ..., n (a
|
| 121 |
"sequence"), returns a list l such that l[i] =
|
| 122 |
arg[i] for i = 1, ..., n (see |List|).
|
| 123 |
Non-numeric keys are not used to initialize
|
| 124 |
-
the list.
|
| 125 |
-
rules.
|
| 126 |
:lua t = {math.pi, false, say = 'hi'}
|
| 127 |
:echo luaeval('vim.list(t)')
|
| 128 |
:" [3.141593, v:false], 'say' is ignored
|
|
@@ -130,10 +130,10 @@ Vim evaluation and command execution, and others.
|
|
| 130 |
vim.dict([arg]) Returns an empty dictionary or, if "arg" is a
|
| 131 |
Lua table, returns a dict d such that d[k] =
|
| 132 |
arg[k] for all string keys k in "arg" (see
|
| 133 |
-
|Dictionary|).
|
| 134 |
-
strings.
|
| 135 |
-
used to initialize the dictionary.
|
| 136 |
-
|lua-eval| for conversion rules.
|
| 137 |
:lua t = {math.pi, false, say = 'hi'}
|
| 138 |
:echo luaeval('vim.dict(t)')
|
| 139 |
:" {'1': 3.141593, '2': v:false,
|
|
@@ -148,29 +148,29 @@ Vim evaluation and command execution, and others.
|
|
| 148 |
:" 0z31326162.0080FEFF
|
| 149 |
<
|
| 150 |
vim.funcref({name}) Returns a Funcref to function {name} (see
|
| 151 |
-
|Funcref|).
|
| 152 |
function().
|
| 153 |
|
| 154 |
vim.buffer([arg]) If "arg" is a number, returns buffer with
|
| 155 |
number "arg" in the buffer list or, if "arg"
|
| 156 |
-
is a string, returns buffer whose full or
|
| 157 |
-
name is "arg".
|
| 158 |
-
(nil value, not string) if the buffer is
|
| 159 |
-
found.
|
| 160 |
'true' returns the first buffer in the buffer
|
| 161 |
list or else the current buffer.
|
| 162 |
|
| 163 |
vim.window([arg]) If "arg" is a number, returns window with
|
| 164 |
number "arg" or 'nil' (nil value, not string)
|
| 165 |
-
if not found.
|
| 166 |
is 'true' returns the first window or else the
|
| 167 |
current window.
|
| 168 |
|
| 169 |
-
vim.type({arg}) Returns the type of {arg}.
|
| 170 |
-
Lua's "type" function, but returns "list",
|
| 171 |
"dict", "funcref", "buffer", or "window" if
|
| 172 |
{arg} is a list, dictionary, funcref, buffer,
|
| 173 |
-
or window, respectively.
|
| 174 |
:lua l = vim.list()
|
| 175 |
:lua print(type(l), vim.type(l))
|
| 176 |
:" list
|
|
@@ -190,7 +190,7 @@ Vim evaluation and command execution, and others.
|
|
| 190 |
vim.eval({expr}) Evaluates expression {expr} (see |expression|),
|
| 191 |
converts the result to Lua, and returns it.
|
| 192 |
Vim strings and numbers are directly converted
|
| 193 |
-
to Lua strings and numbers respectively.
|
| 194 |
lists and dictionaries are converted to Lua
|
| 195 |
userdata (see |lua-list| and |lua-dict|).
|
| 196 |
Examples: >
|
|
@@ -203,16 +203,16 @@ Vim evaluation and command execution, and others.
|
|
| 203 |
vim.beep() Beeps.
|
| 204 |
|
| 205 |
vim.open({fname}) Opens a new buffer for file {fname} and
|
| 206 |
-
returns it.
|
| 207 |
-
current.
|
| 208 |
|
| 209 |
vim.call({name} [, {args}])
|
| 210 |
Proxy to call Vim function named {name} with
|
| 211 |
arguments {args}. Example: >
|
| 212 |
:lua print(vim.call('has', 'timers'))
|
| 213 |
<
|
| 214 |
-
vim.fn Proxy to call Vim functions.
|
| 215 |
-
created on demand. Example: >
|
| 216 |
:lua print(vim.fn.has('timers'))
|
| 217 |
<
|
| 218 |
vim.lua_version The Lua version Vim was compiled with, in the
|
|
@@ -227,7 +227,7 @@ Vim evaluation and command execution, and others.
|
|
| 227 |
*lua-vim-variables*
|
| 228 |
The Vim editor global dictionaries |g:| |w:| |b:| |t:| |v:| can be accessed
|
| 229 |
from Lua conveniently and idiomatically by referencing the `vim.*` Lua tables
|
| 230 |
-
described below.
|
| 231 |
variables from Lua.
|
| 232 |
|
| 233 |
Example: >
|
|
@@ -260,8 +260,8 @@ vim.v *vim.v*
|
|
| 260 |
3. List userdata *lua-list*
|
| 261 |
|
| 262 |
List userdata represent vim lists, and the interface tries to follow closely
|
| 263 |
-
Vim's syntax for lists.
|
| 264 |
-
Lua are reflected in Vim and vice-versa.
|
| 265 |
properties and methods:
|
| 266 |
|
| 267 |
NOTE: In patch 8.2.1066 array indexes were changed from zero-based to
|
|
@@ -274,23 +274,23 @@ Properties
|
|
| 274 |
in Vim.
|
| 275 |
o "l[k]" returns the k-th item in "l"; "l" is one-indexed, as in Lua.
|
| 276 |
To modify the k-th item, simply do "l[k] = newitem"; in
|
| 277 |
-
particular, "l[k] = nil" removes the k-th item from "l".
|
| 278 |
be added to the end of the list by "l[#l + 1] = newitem"
|
| 279 |
o "l()" returns an iterator for "l".
|
| 280 |
o "table.insert(l, newitem)" inserts an item at the end of the list.
|
| 281 |
(only Lua 5.3 and later)
|
| 282 |
o "table.insert(l, position, newitem)" inserts an item at the
|
| 283 |
-
specified position.
|
| 284 |
later)
|
| 285 |
o "table.remove(l, position)" removes an item at the specified
|
| 286 |
-
position.
|
| 287 |
|
| 288 |
|
| 289 |
Methods
|
| 290 |
-------
|
| 291 |
o "l:add(item)" appends "item" to the end of "l".
|
| 292 |
o "l:insert(item[, pos])" inserts "item" at (optional)
|
| 293 |
-
position "pos" in the list.
|
| 294 |
|
| 295 |
Examples:
|
| 296 |
>
|
|
@@ -312,8 +312,8 @@ Examples:
|
|
| 312 |
4. Dict userdata *lua-dict*
|
| 313 |
|
| 314 |
Similarly to list userdata, dict userdata represent vim dictionaries; since
|
| 315 |
-
dictionaries are also objects, references are kept between Lua and Vim.
|
| 316 |
-
"d" has the following properties:
|
| 317 |
|
| 318 |
Properties
|
| 319 |
----------
|
|
@@ -340,7 +340,7 @@ Examples:
|
|
| 340 |
==============================================================================
|
| 341 |
5. Blob userdata *lua-blob*
|
| 342 |
|
| 343 |
-
Blob userdata represent vim blobs.
|
| 344 |
|
| 345 |
Properties
|
| 346 |
----------
|
|
@@ -367,7 +367,7 @@ Examples:
|
|
| 367 |
==============================================================================
|
| 368 |
6. Funcref userdata *lua-funcref*
|
| 369 |
|
| 370 |
-
Funcref userdata represent funcref variables in Vim.
|
| 371 |
defined with a "dict" attribute need to be obtained as a dictionary key
|
| 372 |
in order to have "self" properly assigned to the dictionary (see examples
|
| 373 |
below.) A funcref "f" has the following properties:
|
|
@@ -408,8 +408,8 @@ can be accessed in Vim scripts. Example:
|
|
| 408 |
==============================================================================
|
| 409 |
7. Buffer userdata *lua-buffer*
|
| 410 |
|
| 411 |
-
Buffer userdata represent vim buffers.
|
| 412 |
-
properties and methods:
|
| 413 |
|
| 414 |
Properties
|
| 415 |
----------
|
|
@@ -425,8 +425,8 @@ Properties
|
|
| 425 |
Methods
|
| 426 |
-------
|
| 427 |
o "b:insert(newline[, pos])" inserts string "newline" at (optional)
|
| 428 |
-
position "pos" in the buffer.
|
| 429 |
-
"#b + 1".
|
| 430 |
the buffer.
|
| 431 |
o "b:next()" returns the buffer next to "b" in the buffer list.
|
| 432 |
o "b:previous()" returns the buffer previous to "b" in the buffer
|
|
@@ -460,7 +460,7 @@ Examples:
|
|
| 460 |
==============================================================================
|
| 461 |
8. Window userdata *lua-window*
|
| 462 |
|
| 463 |
-
Window objects represent vim windows.
|
| 464 |
properties and methods:
|
| 465 |
|
| 466 |
Properties
|
|
@@ -493,8 +493,9 @@ Examples:
|
|
| 493 |
9. luaeval() Vim function *lua-luaeval* *lua-eval*
|
| 494 |
|
| 495 |
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
|
| 496 |
-
"luaeval".
|
| 497 |
-
returns the result of the expression.
|
|
|
|
| 498 |
>
|
| 499 |
local chunkheader = "local _A = select(1, ...) return "
|
| 500 |
function luaeval (expstr, arg)
|
|
@@ -502,9 +503,9 @@ returns the result of the expression. It is semantically equivalent in Lua to:
|
|
| 502 |
return chunk(arg) -- return typval
|
| 503 |
end
|
| 504 |
<
|
| 505 |
-
Note that "_A" receives the argument to "luaeval".
|
| 506 |
list, dict, blob, and funcref userdata are converted to their Vim respective
|
| 507 |
-
types, while Lua booleans are converted to numbers.
|
| 508 |
conversion of any of the remaining Lua types, including userdata other than
|
| 509 |
lists, dicts, blobs, and funcrefs, is attempted.
|
| 510 |
|
|
|
|
| 1 |
+
*if_lua.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Luis Carvalho
|
|
|
|
| 71 |
argument being set to the text of each line in turn,
|
| 72 |
without a trailing <EOL>, and the current line number.
|
| 73 |
If the value returned by the function is a string it
|
| 74 |
+
becomes the text of the line in the current turn. The
|
| 75 |
default for [range] is the whole file: "1,$".
|
| 76 |
|
| 77 |
Examples:
|
|
|
|
| 96 |
<
|
| 97 |
|
| 98 |
All these commands execute a Lua chunk from either the command line (:lua and
|
| 99 |
+
:luado) or a file (:luafile) with the given line [range]. Similarly to the
|
| 100 |
+
Lua interpreter, each chunk has its own scope and so only global variables are
|
| 101 |
+
shared between command calls. All Lua default libraries are available. In
|
| 102 |
addition, Lua "print" function has its output redirected to the Vim message
|
| 103 |
area, with arguments separated by a white space instead of a tab.
|
| 104 |
|
| 105 |
Lua uses the "vim" module (see |lua-vim|) to issue commands to Vim
|
| 106 |
+
and manage buffers (|lua-buffer|) and windows (|lua-window|). However,
|
| 107 |
procedures that alter buffer content, open new buffers, and change cursor
|
| 108 |
position are restricted when the command is executed in the |sandbox|.
|
| 109 |
|
|
|
|
| 111 |
==============================================================================
|
| 112 |
2. The vim module *lua-vim*
|
| 113 |
|
| 114 |
+
Lua interfaces Vim through the "vim" module. The first and last line of the
|
| 115 |
+
input range are stored in "vim.firstline" and "vim.lastline" respectively.
|
| 116 |
+
The module also includes routines for buffer, window, and current line
|
| 117 |
+
queries, Vim evaluation and command execution, and others.
|
| 118 |
|
| 119 |
vim.list([arg]) Returns an empty list or, if "arg" is a Lua
|
| 120 |
table with numeric keys 1, ..., n (a
|
| 121 |
"sequence"), returns a list l such that l[i] =
|
| 122 |
arg[i] for i = 1, ..., n (see |List|).
|
| 123 |
Non-numeric keys are not used to initialize
|
| 124 |
+
the list. See also |lua-eval| for conversion
|
| 125 |
+
rules. Example: >
|
| 126 |
:lua t = {math.pi, false, say = 'hi'}
|
| 127 |
:echo luaeval('vim.list(t)')
|
| 128 |
:" [3.141593, v:false], 'say' is ignored
|
|
|
|
| 130 |
vim.dict([arg]) Returns an empty dictionary or, if "arg" is a
|
| 131 |
Lua table, returns a dict d such that d[k] =
|
| 132 |
arg[k] for all string keys k in "arg" (see
|
| 133 |
+
|Dictionary|). Number keys are converted to
|
| 134 |
+
strings. Keys that are not strings are not
|
| 135 |
+
used to initialize the dictionary. See also
|
| 136 |
+
|lua-eval| for conversion rules. Example: >
|
| 137 |
:lua t = {math.pi, false, say = 'hi'}
|
| 138 |
:echo luaeval('vim.dict(t)')
|
| 139 |
:" {'1': 3.141593, '2': v:false,
|
|
|
|
| 148 |
:" 0z31326162.0080FEFF
|
| 149 |
<
|
| 150 |
vim.funcref({name}) Returns a Funcref to function {name} (see
|
| 151 |
+
|Funcref|). It is equivalent to Vim's
|
| 152 |
function().
|
| 153 |
|
| 154 |
vim.buffer([arg]) If "arg" is a number, returns buffer with
|
| 155 |
number "arg" in the buffer list or, if "arg"
|
| 156 |
+
is a string, returns buffer whose full or
|
| 157 |
+
short name is "arg". In both cases, returns
|
| 158 |
+
'nil' (nil value, not string) if the buffer is
|
| 159 |
+
not found. Otherwise, if "toboolean(arg)" is
|
| 160 |
'true' returns the first buffer in the buffer
|
| 161 |
list or else the current buffer.
|
| 162 |
|
| 163 |
vim.window([arg]) If "arg" is a number, returns window with
|
| 164 |
number "arg" or 'nil' (nil value, not string)
|
| 165 |
+
if not found. Otherwise, if "toboolean(arg)"
|
| 166 |
is 'true' returns the first window or else the
|
| 167 |
current window.
|
| 168 |
|
| 169 |
+
vim.type({arg}) Returns the type of {arg}. It is equivalent
|
| 170 |
+
to Lua's "type" function, but returns "list",
|
| 171 |
"dict", "funcref", "buffer", or "window" if
|
| 172 |
{arg} is a list, dictionary, funcref, buffer,
|
| 173 |
+
or window, respectively. Examples: >
|
| 174 |
:lua l = vim.list()
|
| 175 |
:lua print(type(l), vim.type(l))
|
| 176 |
:" list
|
|
|
|
| 190 |
vim.eval({expr}) Evaluates expression {expr} (see |expression|),
|
| 191 |
converts the result to Lua, and returns it.
|
| 192 |
Vim strings and numbers are directly converted
|
| 193 |
+
to Lua strings and numbers respectively. Vim
|
| 194 |
lists and dictionaries are converted to Lua
|
| 195 |
userdata (see |lua-list| and |lua-dict|).
|
| 196 |
Examples: >
|
|
|
|
| 203 |
vim.beep() Beeps.
|
| 204 |
|
| 205 |
vim.open({fname}) Opens a new buffer for file {fname} and
|
| 206 |
+
returns it. Note that the buffer is not set
|
| 207 |
+
as current.
|
| 208 |
|
| 209 |
vim.call({name} [, {args}])
|
| 210 |
Proxy to call Vim function named {name} with
|
| 211 |
arguments {args}. Example: >
|
| 212 |
:lua print(vim.call('has', 'timers'))
|
| 213 |
<
|
| 214 |
+
vim.fn Proxy to call Vim functions. Proxy methods
|
| 215 |
+
are created on demand. Example: >
|
| 216 |
:lua print(vim.fn.has('timers'))
|
| 217 |
<
|
| 218 |
vim.lua_version The Lua version Vim was compiled with, in the
|
|
|
|
| 227 |
*lua-vim-variables*
|
| 228 |
The Vim editor global dictionaries |g:| |w:| |b:| |t:| |v:| can be accessed
|
| 229 |
from Lua conveniently and idiomatically by referencing the `vim.*` Lua tables
|
| 230 |
+
described below. In this way you can easily read and modify global Vim script
|
| 231 |
variables from Lua.
|
| 232 |
|
| 233 |
Example: >
|
|
|
|
| 260 |
3. List userdata *lua-list*
|
| 261 |
|
| 262 |
List userdata represent vim lists, and the interface tries to follow closely
|
| 263 |
+
Vim's syntax for lists. Since lists are objects, changes in list references
|
| 264 |
+
in Lua are reflected in Vim and vice-versa. A list "l" has the following
|
| 265 |
properties and methods:
|
| 266 |
|
| 267 |
NOTE: In patch 8.2.1066 array indexes were changed from zero-based to
|
|
|
|
| 274 |
in Vim.
|
| 275 |
o "l[k]" returns the k-th item in "l"; "l" is one-indexed, as in Lua.
|
| 276 |
To modify the k-th item, simply do "l[k] = newitem"; in
|
| 277 |
+
particular, "l[k] = nil" removes the k-th item from "l". Item can
|
| 278 |
be added to the end of the list by "l[#l + 1] = newitem"
|
| 279 |
o "l()" returns an iterator for "l".
|
| 280 |
o "table.insert(l, newitem)" inserts an item at the end of the list.
|
| 281 |
(only Lua 5.3 and later)
|
| 282 |
o "table.insert(l, position, newitem)" inserts an item at the
|
| 283 |
+
specified position. "position" is one-indexed. (only Lua 5.3 and
|
| 284 |
later)
|
| 285 |
o "table.remove(l, position)" removes an item at the specified
|
| 286 |
+
position. "position" is one-indexed.
|
| 287 |
|
| 288 |
|
| 289 |
Methods
|
| 290 |
-------
|
| 291 |
o "l:add(item)" appends "item" to the end of "l".
|
| 292 |
o "l:insert(item[, pos])" inserts "item" at (optional)
|
| 293 |
+
position "pos" in the list. The default value for "pos" is 0.
|
| 294 |
|
| 295 |
Examples:
|
| 296 |
>
|
|
|
|
| 312 |
4. Dict userdata *lua-dict*
|
| 313 |
|
| 314 |
Similarly to list userdata, dict userdata represent vim dictionaries; since
|
| 315 |
+
dictionaries are also objects, references are kept between Lua and Vim. A
|
| 316 |
+
dict "d" has the following properties:
|
| 317 |
|
| 318 |
Properties
|
| 319 |
----------
|
|
|
|
| 340 |
==============================================================================
|
| 341 |
5. Blob userdata *lua-blob*
|
| 342 |
|
| 343 |
+
Blob userdata represent vim blobs. A blob "b" has the following properties:
|
| 344 |
|
| 345 |
Properties
|
| 346 |
----------
|
|
|
|
| 367 |
==============================================================================
|
| 368 |
6. Funcref userdata *lua-funcref*
|
| 369 |
|
| 370 |
+
Funcref userdata represent funcref variables in Vim. Funcrefs that were
|
| 371 |
defined with a "dict" attribute need to be obtained as a dictionary key
|
| 372 |
in order to have "self" properly assigned to the dictionary (see examples
|
| 373 |
below.) A funcref "f" has the following properties:
|
|
|
|
| 408 |
==============================================================================
|
| 409 |
7. Buffer userdata *lua-buffer*
|
| 410 |
|
| 411 |
+
Buffer userdata represent vim buffers. A buffer userdata "b" has the
|
| 412 |
+
following properties and methods:
|
| 413 |
|
| 414 |
Properties
|
| 415 |
----------
|
|
|
|
| 425 |
Methods
|
| 426 |
-------
|
| 427 |
o "b:insert(newline[, pos])" inserts string "newline" at (optional)
|
| 428 |
+
position "pos" in the buffer. The default value for "pos" is
|
| 429 |
+
"#b + 1". If "pos == 0" then "newline" becomes the first line in
|
| 430 |
the buffer.
|
| 431 |
o "b:next()" returns the buffer next to "b" in the buffer list.
|
| 432 |
o "b:previous()" returns the buffer previous to "b" in the buffer
|
|
|
|
| 460 |
==============================================================================
|
| 461 |
8. Window userdata *lua-window*
|
| 462 |
|
| 463 |
+
Window objects represent vim windows. A window userdata "w" has the following
|
| 464 |
properties and methods:
|
| 465 |
|
| 466 |
Properties
|
|
|
|
| 493 |
9. luaeval() Vim function *lua-luaeval* *lua-eval*
|
| 494 |
|
| 495 |
The (dual) equivalent of "vim.eval" for passing Lua values to Vim is
|
| 496 |
+
"luaeval". "luaeval" takes an expression string and an optional argument and
|
| 497 |
+
returns the result of the expression. It is semantically equivalent in Lua
|
| 498 |
+
to:
|
| 499 |
>
|
| 500 |
local chunkheader = "local _A = select(1, ...) return "
|
| 501 |
function luaeval (expstr, arg)
|
|
|
|
| 503 |
return chunk(arg) -- return typval
|
| 504 |
end
|
| 505 |
<
|
| 506 |
+
Note that "_A" receives the argument to "luaeval". Lua numbers, strings, and
|
| 507 |
list, dict, blob, and funcref userdata are converted to their Vim respective
|
| 508 |
+
types, while Lua booleans are converted to numbers. An error is thrown if
|
| 509 |
conversion of any of the remaining Lua types, including userdata other than
|
| 510 |
lists, dicts, blobs, and funcrefs, is attempted.
|
| 511 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_mzsch.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Sergey Khorev
|
|
@@ -20,7 +20,7 @@ The MzScheme Interface to Vim *mzscheme* *MzScheme*
|
|
| 20 |
Based on the work of Brent Fulgham.
|
| 21 |
Dynamic loading added by Sergey Khorev
|
| 22 |
|
| 23 |
-
MzScheme and PLT Scheme names have been rebranded as Racket.
|
| 24 |
information please check http://racket-lang.org
|
| 25 |
|
| 26 |
Futures and places of Racket version 5.x up to and including 5.3.1 do not
|
|
@@ -67,8 +67,8 @@ MzScheme interface defines exception exn:vim, derived from exn.
|
|
| 67 |
It is raised for various Vim errors.
|
| 68 |
|
| 69 |
During compilation, the MzScheme interface will remember the current MzScheme
|
| 70 |
-
collection path.
|
| 71 |
-
'current-library-collection-paths' parameter.
|
| 72 |
MzScheme collection path: >
|
| 73 |
:mz << EOF
|
| 74 |
(current-library-collection-paths
|
|
@@ -150,9 +150,9 @@ Auto-instantiation of vimext module (can be placed in your |vimrc|): >
|
|
| 150 |
==============================================================================
|
| 151 |
3. Threads *mzscheme-threads*
|
| 152 |
|
| 153 |
-
The MzScheme interface supports threads.
|
| 154 |
-
thus scheduling is required.
|
| 155 |
-
Vim should poll for available MzScheme threads.
|
| 156 |
NOTE
|
| 157 |
Thread scheduling in the console version of Vim is less reliable than in the
|
| 158 |
GUI version.
|
|
@@ -181,12 +181,12 @@ Common
|
|
| 181 |
(get-option {option-name} [buffer-or-window]) Get Vim option value (either
|
| 182 |
local or global, see set-option).
|
| 183 |
(set-option {string} [buffer-or-window])
|
| 184 |
-
Set a Vim option.
|
| 185 |
setting form (like optname=optval, or
|
| 186 |
optname+=optval, etc.) When called with
|
| 187 |
{buffer} or {window} the local option will
|
| 188 |
-
be set.
|
| 189 |
-
as {buffer-or-window}.
|
| 190 |
will be used.
|
| 191 |
|
| 192 |
Buffers *mzscheme-buffer*
|
|
@@ -197,17 +197,17 @@ Buffers *mzscheme-buffer*
|
|
| 197 |
(get-buff-line {linenr} [buffer])
|
| 198 |
Get line from a buffer.
|
| 199 |
(set-buff-line {linenr} {string} [buffer])
|
| 200 |
-
Set a line in a buffer.
|
| 201 |
-
the line gets deleted. The [buffer]
|
| 202 |
-
argument is optional.
|
| 203 |
current buffer will be used.
|
| 204 |
(get-buff-line-list {start} {end} [buffer])
|
| 205 |
-
Get a list of lines in a buffer.
|
| 206 |
and {end} are 1-based and inclusive.
|
| 207 |
(set-buff-line-list {start} {end} {string-list} [buffer])
|
| 208 |
-
Set a list of lines in a buffer.
|
| 209 |
string-list is #f or null, the lines get
|
| 210 |
-
deleted.
|
| 211 |
{end}-{start} the remaining lines will
|
| 212 |
be deleted.
|
| 213 |
(get-buff-name [buffer]) Get a buffer's text name.
|
|
@@ -215,13 +215,14 @@ Buffers *mzscheme-buffer*
|
|
| 215 |
(get-buff-size [buffer]) Get buffer line count.
|
| 216 |
(insert-buff-line-list {linenr} {string/string-list} [buffer])
|
| 217 |
Insert a list of lines into a buffer after
|
| 218 |
-
{linenr}.
|
| 219 |
inserted at start.
|
| 220 |
-
(curr-buff) Get the current buffer.
|
| 221 |
-
interface procedures to change
|
|
|
|
| 222 |
(buff-count) Get count of total buffers in the editor.
|
| 223 |
(get-next-buff [buffer]) Get next buffer.
|
| 224 |
-
(get-prev-buff [buffer]) Get previous buffer.
|
| 225 |
are no more buffers.
|
| 226 |
(open-buff {filename}) Open a new buffer (for file "name")
|
| 227 |
(get-buff-by-name {buffername}) Get a buffer by its filename or #f
|
|
@@ -258,7 +259,7 @@ evaluate MzScheme expressions and pass their values to Vim script.
|
|
| 258 |
6. Using Function references *mzscheme-funcref*
|
| 259 |
|
| 260 |
MzScheme interface allows use of |Funcref|s so you can call Vim functions
|
| 261 |
-
directly from Scheme.
|
| 262 |
function! MyAdd2(arg)
|
| 263 |
return a:arg + 2
|
| 264 |
endfunction
|
|
@@ -273,7 +274,7 @@ directly from Scheme. For instance: >
|
|
| 273 |
==============================================================================
|
| 274 |
7. Dynamic loading *mzscheme-dynamic* *E815*
|
| 275 |
|
| 276 |
-
On MS-Windows the MzScheme libraries can be loaded dynamically.
|
| 277 |
output then includes |+mzscheme/dyn|.
|
| 278 |
|
| 279 |
This means that Vim will search for the MzScheme DLL files only when needed.
|
|
@@ -291,7 +292,7 @@ name of the library to load. The initial value is specified at build time.
|
|
| 291 |
|
| 292 |
The version of the DLL must match the MzScheme version Vim was compiled with.
|
| 293 |
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
| 294 |
-
"libmzgc209_000.dll".
|
| 295 |
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
| 296 |
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.
|
| 297 |
|
|
|
|
| 1 |
+
*if_mzsch.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Sergey Khorev
|
|
|
|
| 20 |
Based on the work of Brent Fulgham.
|
| 21 |
Dynamic loading added by Sergey Khorev
|
| 22 |
|
| 23 |
+
MzScheme and PLT Scheme names have been rebranded as Racket. For more
|
| 24 |
information please check http://racket-lang.org
|
| 25 |
|
| 26 |
Futures and places of Racket version 5.x up to and including 5.3.1 do not
|
|
|
|
| 67 |
It is raised for various Vim errors.
|
| 68 |
|
| 69 |
During compilation, the MzScheme interface will remember the current MzScheme
|
| 70 |
+
collection path. If you want to specify additional paths use the
|
| 71 |
+
'current-library-collection-paths' parameter. E.g., to cons the user-local
|
| 72 |
MzScheme collection path: >
|
| 73 |
:mz << EOF
|
| 74 |
(current-library-collection-paths
|
|
|
|
| 150 |
==============================================================================
|
| 151 |
3. Threads *mzscheme-threads*
|
| 152 |
|
| 153 |
+
The MzScheme interface supports threads. They are independent from OS
|
| 154 |
+
threads, thus scheduling is required. The option 'mzquantum' determines how
|
| 155 |
+
often Vim should poll for available MzScheme threads.
|
| 156 |
NOTE
|
| 157 |
Thread scheduling in the console version of Vim is less reliable than in the
|
| 158 |
GUI version.
|
|
|
|
| 181 |
(get-option {option-name} [buffer-or-window]) Get Vim option value (either
|
| 182 |
local or global, see set-option).
|
| 183 |
(set-option {string} [buffer-or-window])
|
| 184 |
+
Set a Vim option. String must have option
|
| 185 |
setting form (like optname=optval, or
|
| 186 |
optname+=optval, etc.) When called with
|
| 187 |
{buffer} or {window} the local option will
|
| 188 |
+
be set. The symbol 'global can be passed
|
| 189 |
+
as {buffer-or-window}. Then |:setglobal|
|
| 190 |
will be used.
|
| 191 |
|
| 192 |
Buffers *mzscheme-buffer*
|
|
|
|
| 197 |
(get-buff-line {linenr} [buffer])
|
| 198 |
Get line from a buffer.
|
| 199 |
(set-buff-line {linenr} {string} [buffer])
|
| 200 |
+
Set a line in a buffer. If {string} is
|
| 201 |
+
#f, the line gets deleted. The [buffer]
|
| 202 |
+
argument is optional. If omitted, the
|
| 203 |
current buffer will be used.
|
| 204 |
(get-buff-line-list {start} {end} [buffer])
|
| 205 |
+
Get a list of lines in a buffer. {Start}
|
| 206 |
and {end} are 1-based and inclusive.
|
| 207 |
(set-buff-line-list {start} {end} {string-list} [buffer])
|
| 208 |
+
Set a list of lines in a buffer. If
|
| 209 |
string-list is #f or null, the lines get
|
| 210 |
+
deleted. If a list is shorter than
|
| 211 |
{end}-{start} the remaining lines will
|
| 212 |
be deleted.
|
| 213 |
(get-buff-name [buffer]) Get a buffer's text name.
|
|
|
|
| 215 |
(get-buff-size [buffer]) Get buffer line count.
|
| 216 |
(insert-buff-line-list {linenr} {string/string-list} [buffer])
|
| 217 |
Insert a list of lines into a buffer after
|
| 218 |
+
{linenr}. If {linenr} is 0, lines will be
|
| 219 |
inserted at start.
|
| 220 |
+
(curr-buff) Get the current buffer. Use other
|
| 221 |
+
MzScheme interface procedures to change
|
| 222 |
+
it.
|
| 223 |
(buff-count) Get count of total buffers in the editor.
|
| 224 |
(get-next-buff [buffer]) Get next buffer.
|
| 225 |
+
(get-prev-buff [buffer]) Get previous buffer. Return #f when there
|
| 226 |
are no more buffers.
|
| 227 |
(open-buff {filename}) Open a new buffer (for file "name")
|
| 228 |
(get-buff-by-name {buffername}) Get a buffer by its filename or #f
|
|
|
|
| 259 |
6. Using Function references *mzscheme-funcref*
|
| 260 |
|
| 261 |
MzScheme interface allows use of |Funcref|s so you can call Vim functions
|
| 262 |
+
directly from Scheme. For instance: >
|
| 263 |
function! MyAdd2(arg)
|
| 264 |
return a:arg + 2
|
| 265 |
endfunction
|
|
|
|
| 274 |
==============================================================================
|
| 275 |
7. Dynamic loading *mzscheme-dynamic* *E815*
|
| 276 |
|
| 277 |
+
On MS-Windows the MzScheme libraries can be loaded dynamically. The |:version|
|
| 278 |
output then includes |+mzscheme/dyn|.
|
| 279 |
|
| 280 |
This means that Vim will search for the MzScheme DLL files only when needed.
|
|
|
|
| 292 |
|
| 293 |
The version of the DLL must match the MzScheme version Vim was compiled with.
|
| 294 |
For MzScheme version 209 they will be "libmzsch209_000.dll" and
|
| 295 |
+
"libmzgc209_000.dll". To know for sure look at the output of the ":version"
|
| 296 |
command, look for -DDYNAMIC_MZSCH_DLL="something" and
|
| 297 |
-DDYNAMIC_MZGC_DLL="something" in the "Compilation" info.
|
| 298 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_perl.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Sven Verdoolaege
|
|
@@ -17,9 +17,9 @@ Perl and Vim *perl* *Perl*
|
|
| 17 |
1. Editing Perl files *perl-editing*
|
| 18 |
|
| 19 |
Vim syntax highlighting supports Perl and POD files. Vim assumes a file is
|
| 20 |
-
Perl code if the filename has a .pl or .pm suffix. Vim also examines the
|
| 21 |
-
line of a file, regardless of the filename suffix, to check if a file is
|
| 22 |
-
Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file
|
| 23 |
is POD text if the filename has a .POD suffix.
|
| 24 |
|
| 25 |
To use tags with Perl, you need Universal/Exuberant Ctags. Look here:
|
|
@@ -90,9 +90,9 @@ To see what version of Perl you have: >
|
|
| 90 |
*:perldo* *:perld*
|
| 91 |
:[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the
|
| 92 |
[range], with $_ being set to the text of each line in
|
| 93 |
-
turn, without a trailing <EOL>. Setting $_ will
|
| 94 |
-
the text, but note that it is not possible to
|
| 95 |
-
delete lines using this command.
|
| 96 |
The default for [range] is the whole file: "1,$".
|
| 97 |
|
| 98 |
Here are some things you can try: >
|
|
@@ -296,8 +296,8 @@ version of the shared library must match the Perl version Vim was compiled
|
|
| 296 |
with.
|
| 297 |
|
| 298 |
Note: If you are building Perl locally, you have to use a version compiled
|
| 299 |
-
with threading support for it for Vim to successfully link against it.
|
| 300 |
-
use the `-Dusethreads` flags when configuring Perl, and check that a Perl
|
| 301 |
binary has it enabled by running `perl -V` and verify that `USE_ITHREADS` is
|
| 302 |
under "Compile-time options".
|
| 303 |
|
|
|
|
| 1 |
+
*if_perl.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Sven Verdoolaege
|
|
|
|
| 17 |
1. Editing Perl files *perl-editing*
|
| 18 |
|
| 19 |
Vim syntax highlighting supports Perl and POD files. Vim assumes a file is
|
| 20 |
+
Perl code if the filename has a .pl or .pm suffix. Vim also examines the
|
| 21 |
+
first line of a file, regardless of the filename suffix, to check if a file is
|
| 22 |
+
a Perl script (see scripts.vim in Vim's syntax directory). Vim assumes a file
|
| 23 |
is POD text if the filename has a .POD suffix.
|
| 24 |
|
| 25 |
To use tags with Perl, you need Universal/Exuberant Ctags. Look here:
|
|
|
|
| 90 |
*:perldo* *:perld*
|
| 91 |
:[range]perld[o] {cmd} Execute Perl command {cmd} for each line in the
|
| 92 |
[range], with $_ being set to the text of each line in
|
| 93 |
+
turn, without a trailing <EOL>. Setting $_ will
|
| 94 |
+
change the text, but note that it is not possible to
|
| 95 |
+
add or delete lines using this command.
|
| 96 |
The default for [range] is the whole file: "1,$".
|
| 97 |
|
| 98 |
Here are some things you can try: >
|
|
|
|
| 296 |
with.
|
| 297 |
|
| 298 |
Note: If you are building Perl locally, you have to use a version compiled
|
| 299 |
+
with threading support for it for Vim to successfully link against it. You
|
| 300 |
+
can use the `-Dusethreads` flags when configuring Perl, and check that a Perl
|
| 301 |
binary has it enabled by running `perl -V` and verify that `USE_ITHREADS` is
|
| 302 |
under "Compile-time options".
|
| 303 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_pyth.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Paul Moore
|
|
@@ -80,9 +80,9 @@ and "EOF" do not have any indent.
|
|
| 80 |
{body}" for each line in the [range], with the
|
| 81 |
function arguments being set to the text of each line
|
| 82 |
in turn, without a trailing <EOL>, and the current
|
| 83 |
-
line number.
|
| 84 |
-
None.
|
| 85 |
-
the line in the current turn.
|
| 86 |
is the whole file: "1,$".
|
| 87 |
|
| 88 |
Examples:
|
|
@@ -91,7 +91,7 @@ Examples:
|
|
| 91 |
:pydo if line: return "%4d: %s" % (linenr, line)
|
| 92 |
<
|
| 93 |
One can use `:pydo` in possible conjunction with `:py` to filter a range using
|
| 94 |
-
python.
|
| 95 |
|
| 96 |
:py3 << EOF
|
| 97 |
needle = vim.eval('@a')
|
|
@@ -205,12 +205,12 @@ vim.eval(str) *python-eval*
|
|
| 205 |
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
|
| 206 |
|
| 207 |
NOTE: In Vim9 script, local variables in def functions are not visible
|
| 208 |
-
to python evaluations.
|
| 209 |
use the {locals} dict when calling |py3eval()| and friends.
|
| 210 |
|
| 211 |
vim.bindeval(str) *python-bindeval*
|
| 212 |
Like |python-eval|, but returns special objects described in
|
| 213 |
-
|python-bindeval-objects|.
|
| 214 |
(|List|, |Tuple| or |Dictionary|) or call (|Funcref|) vim objects.
|
| 215 |
|
| 216 |
vim.strwidth(str) *python-strwidth*
|
|
@@ -220,14 +220,14 @@ vim.strwidth(str) *python-strwidth*
|
|
| 220 |
vim.foreach_rtp(callable) *python-foreach_rtp*
|
| 221 |
Call the given callable for each path in 'runtimepath' until either
|
| 222 |
callable returns something but None, the exception is raised or there
|
| 223 |
-
are no longer paths.
|
| 224 |
vim.foreach_rtp function returns the value returned by callable.
|
| 225 |
|
| 226 |
vim.chdir(*args, **kwargs) *python-chdir*
|
| 227 |
vim.fchdir(*args, **kwargs) *python-fchdir*
|
| 228 |
Run os.chdir or os.fchdir, then all appropriate vim stuff.
|
| 229 |
Note: you should not use these functions directly, use os.chdir and
|
| 230 |
-
os.fchdir instead.
|
| 231 |
os.fchdir does not exist.
|
| 232 |
|
| 233 |
Error object of the "vim" module
|
|
@@ -265,12 +265,12 @@ vim.windows *python-windows*
|
|
| 265 |
< Note: vim.windows object always accesses current tab page.
|
| 266 |
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
| 267 |
object and always use windows from that tab page (or throw vim.error
|
| 268 |
-
in case tab page was deleted).
|
| 269 |
without keeping a reference to vim module object or |python-tabpage|,
|
| 270 |
they will not lose their properties in this case.
|
| 271 |
|
| 272 |
vim.tabpages *python-tabpages*
|
| 273 |
-
A sequence object providing access to the list of vim tab pages.
|
| 274 |
object supports the following operations: >
|
| 275 |
:py t = vim.tabpages[i] # Indexing (read-only)
|
| 276 |
:py t in vim.tabpages # Membership test
|
|
@@ -293,10 +293,10 @@ vim.current *python-current*
|
|
| 293 |
|
| 294 |
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
| 295 |
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
| 296 |
-
respectively.
|
| 297 |
-
switching to given buffer, window or tab page.
|
| 298 |
switch UI objects in python: you can't assign to
|
| 299 |
-
|python-tabpage|.window attribute.
|
| 300 |
autocommands use >
|
| 301 |
py << EOF
|
| 302 |
saved_eventignore = vim.options['eventignore']
|
|
@@ -310,16 +310,16 @@ vim.current *python-current*
|
|
| 310 |
vim.vars *python-vars*
|
| 311 |
vim.vvars *python-vvars*
|
| 312 |
Dictionary-like objects holding dictionaries with global (|g:|) and
|
| 313 |
-
vim (|v:|) variables respectively.
|
| 314 |
but faster.
|
| 315 |
|
| 316 |
vim.options *python-options*
|
| 317 |
Object partly supporting mapping protocol (supports setting and
|
| 318 |
getting items) providing a read-write access to global options.
|
| 319 |
-
Note: unlike |:set| this provides access only to global options.
|
| 320 |
cannot use this object to obtain or set local options' values or
|
| 321 |
-
access local-only options in any fashion.
|
| 322 |
-
option with such name exists (i.e. does not raise KeyError for
|
| 323 |
|global-local| options and global only options, but does for window-
|
| 324 |
and buffer-local ones). Use |python-buffer| objects to access to
|
| 325 |
buffer-local options and |python-window| objects to access to
|
|
@@ -340,8 +340,8 @@ Output from Python *python-output*
|
|
| 340 |
|
| 341 |
*python-input*
|
| 342 |
Input (via sys.stdin, including input() and raw_input()) is not
|
| 343 |
-
supported, and may cause the program to crash. This should probably
|
| 344 |
-
fixed.
|
| 345 |
|
| 346 |
*python2-directory* *python3-directory* *pythonx-directory*
|
| 347 |
Python 'runtimepath' handling *python-special-path*
|
|
@@ -401,11 +401,11 @@ Implementation is similar to the following, but written in C: >
|
|
| 401 |
|
| 402 |
sys.path_hooks.append(hook)
|
| 403 |
|
| 404 |
-
vim.VIM_SPECIAL_PATH
|
| 405 |
-
String constant used in conjunction with vim path hook.
|
| 406 |
installed by vim is requested to handle anything but path equal to
|
| 407 |
-
vim.VIM_SPECIAL_PATH constant it raises ImportError.
|
| 408 |
-
case it uses special loader.
|
| 409 |
|
| 410 |
Note: you must not use value of this constant directly, always use
|
| 411 |
vim.VIM_SPECIAL_PATH object.
|
|
@@ -422,7 +422,7 @@ vim.find_spec(...) *python-find_spec*
|
|
| 422 |
|
| 423 |
vim._get_paths *python-_get_paths*
|
| 424 |
Methods returning a list of paths which will be searched for by path
|
| 425 |
-
hook.
|
| 426 |
versions, but can use it for debugging.
|
| 427 |
|
| 428 |
It returns a list of {rtp}/python2 (or {rtp}/python3) and
|
|
@@ -431,7 +431,8 @@ vim._get_paths *python-_get_paths*
|
|
| 431 |
==============================================================================
|
| 432 |
3. Buffer objects *python-buffer*
|
| 433 |
|
| 434 |
-
Buffer objects represent vim buffers. You can obtain them in a number of
|
|
|
|
| 435 |
- via vim.current.buffer (|python-current|)
|
| 436 |
- from indexing vim.buffers (|python-buffers|)
|
| 437 |
- from the "buffer" attribute of a window (|python-window|)
|
|
@@ -445,9 +446,10 @@ act as if they were lists (yes, they are mutable) of strings, with each
|
|
| 445 |
element being a line of the buffer. All of the usual sequence operations,
|
| 446 |
including indexing, index assignment, slicing and slice assignment, work as
|
| 447 |
you would expect. Note that the result of indexing (slicing) a buffer is a
|
| 448 |
-
string (list of strings). This has one unusual consequence - b[:] is
|
| 449 |
-
from b. In particular, "b[:] = None" deletes the whole of the
|
| 450 |
-
"b = None" merely updates the variable b, with no effect on
|
|
|
|
| 451 |
|
| 452 |
Buffer indexes start at zero, as is normal in Python. This differs from vim
|
| 453 |
line numbers, which start from 1. This is particularly relevant when dealing
|
|
@@ -458,17 +460,17 @@ The buffer object attributes are:
|
|
| 458 |
|buffer-variable|s.
|
| 459 |
b.options Mapping object (supports item getting, setting and
|
| 460 |
deleting) that provides access to buffer-local options
|
| 461 |
-
and buffer-local values of |global-local| options.
|
| 462 |
|python-window|.options if option is window-local,
|
| 463 |
-
this object will raise KeyError.
|
| 464 |
|global-local| and local value is missing getting it
|
| 465 |
will return None.
|
| 466 |
-
b.name String, RW.
|
| 467 |
Note: when assigning to b.name |BufFilePre| and
|
| 468 |
|BufFilePost| autocommands are launched.
|
| 469 |
-
b.number Buffer number.
|
| 470 |
Read-only.
|
| 471 |
-
b.valid True or False.
|
| 472 |
corresponding buffer is wiped out.
|
| 473 |
|
| 474 |
The buffer object methods are:
|
|
@@ -541,7 +543,8 @@ Example (assume r is the current range): >
|
|
| 541 |
==============================================================================
|
| 542 |
5. Window objects *python-window*
|
| 543 |
|
| 544 |
-
Window objects represent vim windows. You can obtain them in a number of
|
|
|
|
| 545 |
- via vim.current.window (|python-current|)
|
| 546 |
- from indexing vim.windows (|python-windows|)
|
| 547 |
- from indexing "windows" attribute of a tab page (|python-tabpage|)
|
|
|
|
| 1 |
+
*if_pyth.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Paul Moore
|
|
|
|
| 80 |
{body}" for each line in the [range], with the
|
| 81 |
function arguments being set to the text of each line
|
| 82 |
in turn, without a trailing <EOL>, and the current
|
| 83 |
+
line number. The function should return a string or
|
| 84 |
+
None. If a string is returned, it becomes the text of
|
| 85 |
+
the line in the current turn. The default for [range]
|
| 86 |
is the whole file: "1,$".
|
| 87 |
|
| 88 |
Examples:
|
|
|
|
| 91 |
:pydo if line: return "%4d: %s" % (linenr, line)
|
| 92 |
<
|
| 93 |
One can use `:pydo` in possible conjunction with `:py` to filter a range using
|
| 94 |
+
python. For example: >
|
| 95 |
|
| 96 |
:py3 << EOF
|
| 97 |
needle = vim.eval('@a')
|
|
|
|
| 205 |
'eval_expr', 'kind': 'f', 'filename': './src/eval.c'}] ~
|
| 206 |
|
| 207 |
NOTE: In Vim9 script, local variables in def functions are not visible
|
| 208 |
+
to python evaluations. To pass local variables to python evaluations,
|
| 209 |
use the {locals} dict when calling |py3eval()| and friends.
|
| 210 |
|
| 211 |
vim.bindeval(str) *python-bindeval*
|
| 212 |
Like |python-eval|, but returns special objects described in
|
| 213 |
+
|python-bindeval-objects|. These python objects let you modify
|
| 214 |
(|List|, |Tuple| or |Dictionary|) or call (|Funcref|) vim objects.
|
| 215 |
|
| 216 |
vim.strwidth(str) *python-strwidth*
|
|
|
|
| 220 |
vim.foreach_rtp(callable) *python-foreach_rtp*
|
| 221 |
Call the given callable for each path in 'runtimepath' until either
|
| 222 |
callable returns something but None, the exception is raised or there
|
| 223 |
+
are no longer paths. If stopped in case callable returned non-None,
|
| 224 |
vim.foreach_rtp function returns the value returned by callable.
|
| 225 |
|
| 226 |
vim.chdir(*args, **kwargs) *python-chdir*
|
| 227 |
vim.fchdir(*args, **kwargs) *python-fchdir*
|
| 228 |
Run os.chdir or os.fchdir, then all appropriate vim stuff.
|
| 229 |
Note: you should not use these functions directly, use os.chdir and
|
| 230 |
+
os.fchdir instead. Behavior of vim.fchdir is undefined in case
|
| 231 |
os.fchdir does not exist.
|
| 232 |
|
| 233 |
Error object of the "vim" module
|
|
|
|
| 265 |
< Note: vim.windows object always accesses current tab page.
|
| 266 |
|python-tabpage|.windows objects are bound to parent |python-tabpage|
|
| 267 |
object and always use windows from that tab page (or throw vim.error
|
| 268 |
+
in case tab page was deleted). You can keep a reference to both
|
| 269 |
without keeping a reference to vim module object or |python-tabpage|,
|
| 270 |
they will not lose their properties in this case.
|
| 271 |
|
| 272 |
vim.tabpages *python-tabpages*
|
| 273 |
+
A sequence object providing access to the list of vim tab pages. The
|
| 274 |
object supports the following operations: >
|
| 275 |
:py t = vim.tabpages[i] # Indexing (read-only)
|
| 276 |
:py t in vim.tabpages # Membership test
|
|
|
|
| 293 |
|
| 294 |
Note: When assigning to vim.current.{buffer,window,tabpage} it expects
|
| 295 |
valid |python-buffer|, |python-window| or |python-tabpage| objects
|
| 296 |
+
respectively. Assigning triggers normal (with |autocommand|s)
|
| 297 |
+
switching to given buffer, window or tab page. It is the only way to
|
| 298 |
switch UI objects in python: you can't assign to
|
| 299 |
+
|python-tabpage|.window attribute. To switch without triggering
|
| 300 |
autocommands use >
|
| 301 |
py << EOF
|
| 302 |
saved_eventignore = vim.options['eventignore']
|
|
|
|
| 310 |
vim.vars *python-vars*
|
| 311 |
vim.vvars *python-vvars*
|
| 312 |
Dictionary-like objects holding dictionaries with global (|g:|) and
|
| 313 |
+
vim (|v:|) variables respectively. Identical to `vim.bindeval("g:")`,
|
| 314 |
but faster.
|
| 315 |
|
| 316 |
vim.options *python-options*
|
| 317 |
Object partly supporting mapping protocol (supports setting and
|
| 318 |
getting items) providing a read-write access to global options.
|
| 319 |
+
Note: unlike |:set| this provides access only to global options. You
|
| 320 |
cannot use this object to obtain or set local options' values or
|
| 321 |
+
access local-only options in any fashion. Raises KeyError if no
|
| 322 |
+
global option with such name exists (i.e. does not raise KeyError for
|
| 323 |
|global-local| options and global only options, but does for window-
|
| 324 |
and buffer-local ones). Use |python-buffer| objects to access to
|
| 325 |
buffer-local options and |python-window| objects to access to
|
|
|
|
| 340 |
|
| 341 |
*python-input*
|
| 342 |
Input (via sys.stdin, including input() and raw_input()) is not
|
| 343 |
+
supported, and may cause the program to crash. This should probably
|
| 344 |
+
be fixed.
|
| 345 |
|
| 346 |
*python2-directory* *python3-directory* *pythonx-directory*
|
| 347 |
Python 'runtimepath' handling *python-special-path*
|
|
|
|
| 401 |
|
| 402 |
sys.path_hooks.append(hook)
|
| 403 |
|
| 404 |
+
vim.VIM_SPECIAL_PATH *python-VIM_SPECIAL_PATH*
|
| 405 |
+
String constant used in conjunction with vim path hook. If path hook
|
| 406 |
installed by vim is requested to handle anything but path equal to
|
| 407 |
+
vim.VIM_SPECIAL_PATH constant it raises ImportError. In the only
|
| 408 |
+
other case it uses special loader.
|
| 409 |
|
| 410 |
Note: you must not use value of this constant directly, always use
|
| 411 |
vim.VIM_SPECIAL_PATH object.
|
|
|
|
| 422 |
|
| 423 |
vim._get_paths *python-_get_paths*
|
| 424 |
Methods returning a list of paths which will be searched for by path
|
| 425 |
+
hook. You should not rely on this method being present in future
|
| 426 |
versions, but can use it for debugging.
|
| 427 |
|
| 428 |
It returns a list of {rtp}/python2 (or {rtp}/python3) and
|
|
|
|
| 431 |
==============================================================================
|
| 432 |
3. Buffer objects *python-buffer*
|
| 433 |
|
| 434 |
+
Buffer objects represent vim buffers. You can obtain them in a number of
|
| 435 |
+
ways:
|
| 436 |
- via vim.current.buffer (|python-current|)
|
| 437 |
- from indexing vim.buffers (|python-buffers|)
|
| 438 |
- from the "buffer" attribute of a window (|python-window|)
|
|
|
|
| 446 |
element being a line of the buffer. All of the usual sequence operations,
|
| 447 |
including indexing, index assignment, slicing and slice assignment, work as
|
| 448 |
you would expect. Note that the result of indexing (slicing) a buffer is a
|
| 449 |
+
string (list of strings). This has one unusual consequence - b[:] is
|
| 450 |
+
different from b. In particular, "b[:] = None" deletes the whole of the
|
| 451 |
+
buffer, whereas "b = None" merely updates the variable b, with no effect on
|
| 452 |
+
the buffer.
|
| 453 |
|
| 454 |
Buffer indexes start at zero, as is normal in Python. This differs from vim
|
| 455 |
line numbers, which start from 1. This is particularly relevant when dealing
|
|
|
|
| 460 |
|buffer-variable|s.
|
| 461 |
b.options Mapping object (supports item getting, setting and
|
| 462 |
deleting) that provides access to buffer-local options
|
| 463 |
+
and buffer-local values of |global-local| options. Use
|
| 464 |
|python-window|.options if option is window-local,
|
| 465 |
+
this object will raise KeyError. If option is
|
| 466 |
|global-local| and local value is missing getting it
|
| 467 |
will return None.
|
| 468 |
+
b.name String, RW. Contains buffer name (full path).
|
| 469 |
Note: when assigning to b.name |BufFilePre| and
|
| 470 |
|BufFilePost| autocommands are launched.
|
| 471 |
+
b.number Buffer number. Can be used as |python-buffers| key.
|
| 472 |
Read-only.
|
| 473 |
+
b.valid True or False. Buffer object becomes invalid when
|
| 474 |
corresponding buffer is wiped out.
|
| 475 |
|
| 476 |
The buffer object methods are:
|
|
|
|
| 543 |
==============================================================================
|
| 544 |
5. Window objects *python-window*
|
| 545 |
|
| 546 |
+
Window objects represent vim windows. You can obtain them in a number of
|
| 547 |
+
ways:
|
| 548 |
- via vim.current.window (|python-current|)
|
| 549 |
- from indexing vim.windows (|python-windows|)
|
| 550 |
- from indexing "windows" attribute of a tab page (|python-tabpage|)
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_ruby.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Shugo Maeda
|
|
@@ -69,14 +69,14 @@ To see what version of Ruby you have: >
|
|
| 69 |
*:rubydo* *:rubyd* *E265*
|
| 70 |
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
|
| 71 |
[range], with $_ being set to the text of each line in
|
| 72 |
-
turn, without a trailing <EOL>. Setting $_ will
|
| 73 |
-
the text, but note that it is not possible to
|
| 74 |
-
delete lines using this command.
|
| 75 |
The default for [range] is the whole file: "1,$".
|
| 76 |
|
| 77 |
*:rubyfile* *:rubyf*
|
| 78 |
-
:rubyf[ile] {file} Execute the Ruby script in {file}. This is the same
|
| 79 |
-
`:ruby load 'file'`, but allows file name completion.
|
| 80 |
|
| 81 |
Executing Ruby commands is not possible in the |sandbox|.
|
| 82 |
|
|
@@ -148,8 +148,8 @@ Class Methods:
|
|
| 148 |
|
| 149 |
current Returns the current buffer object.
|
| 150 |
count Returns the number of buffers.
|
| 151 |
-
self[{n}] Returns the buffer object for the number {n}. The first
|
| 152 |
-
is 0.
|
| 153 |
|
| 154 |
Methods:
|
| 155 |
|
|
@@ -157,10 +157,10 @@ name Returns the full name of the buffer.
|
|
| 157 |
number Returns the number of the buffer.
|
| 158 |
count Returns the number of lines.
|
| 159 |
length Returns the number of lines.
|
| 160 |
-
self[{n}] Returns a line from the buffer.
|
| 161 |
self[{n}] = {str}
|
| 162 |
-
Sets a line in the buffer.
|
| 163 |
-
delete({n}) Deletes a line from the buffer.
|
| 164 |
append({n}, {str})
|
| 165 |
Appends a line after the line {n}.
|
| 166 |
line Returns the current line of the buffer if the buffer is
|
|
@@ -178,8 +178,8 @@ Class Methods:
|
|
| 178 |
|
| 179 |
current Returns the current window object.
|
| 180 |
count Returns the number of windows.
|
| 181 |
-
self[{n}] Returns the window object for the number {n}. The first
|
| 182 |
-
is 0.
|
| 183 |
|
| 184 |
Methods:
|
| 185 |
|
|
|
|
| 1 |
+
*if_ruby.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Shugo Maeda
|
|
|
|
| 69 |
*:rubydo* *:rubyd* *E265*
|
| 70 |
:[range]rubyd[o] {cmd} Evaluate Ruby command {cmd} for each line in the
|
| 71 |
[range], with $_ being set to the text of each line in
|
| 72 |
+
turn, without a trailing <EOL>. Setting $_ will
|
| 73 |
+
change the text, but note that it is not possible to
|
| 74 |
+
add or delete lines using this command.
|
| 75 |
The default for [range] is the whole file: "1,$".
|
| 76 |
|
| 77 |
*:rubyfile* *:rubyf*
|
| 78 |
+
:rubyf[ile] {file} Execute the Ruby script in {file}. This is the same
|
| 79 |
+
as `:ruby load 'file'`, but allows file name completion.
|
| 80 |
|
| 81 |
Executing Ruby commands is not possible in the |sandbox|.
|
| 82 |
|
|
|
|
| 148 |
|
| 149 |
current Returns the current buffer object.
|
| 150 |
count Returns the number of buffers.
|
| 151 |
+
self[{n}] Returns the buffer object for the number {n}. The first
|
| 152 |
+
number is 0.
|
| 153 |
|
| 154 |
Methods:
|
| 155 |
|
|
|
|
| 157 |
number Returns the number of the buffer.
|
| 158 |
count Returns the number of lines.
|
| 159 |
length Returns the number of lines.
|
| 160 |
+
self[{n}] Returns a line from the buffer. {n} is the line number.
|
| 161 |
self[{n}] = {str}
|
| 162 |
+
Sets a line in the buffer. {n} is the line number.
|
| 163 |
+
delete({n}) Deletes a line from the buffer. {n} is the line number.
|
| 164 |
append({n}, {str})
|
| 165 |
Appends a line after the line {n}.
|
| 166 |
line Returns the current line of the buffer if the buffer is
|
|
|
|
| 178 |
|
| 179 |
current Returns the current window object.
|
| 180 |
count Returns the number of windows.
|
| 181 |
+
self[{n}] Returns the window object for the number {n}. The first
|
| 182 |
+
number is 0.
|
| 183 |
|
| 184 |
Methods:
|
| 185 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*if_tcl.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Ingo Wilken
|
|
@@ -234,8 +234,8 @@ The ::vim::current(window) variable contains the name of the window command
|
|
| 234 |
for the current window. A window command is automatically deleted when the
|
| 235 |
corresponding vim window is closed.
|
| 236 |
|
| 237 |
-
Let's assume the name of the window command is stored in the Tcl variable
|
| 238 |
-
i.e. "$win" calls the command. The following options are available: >
|
| 239 |
|
| 240 |
$win buffer # Create Tcl command for window's buffer.
|
| 241 |
$win command {cmd} # Execute Ex command in windows context.
|
|
@@ -264,7 +264,8 @@ Options:
|
|
| 264 |
array set here [$win cursor]
|
| 265 |
< "here(row)" and "here(column)" now contain the cursor position.
|
| 266 |
With a single argument, the argument is interpreted as the name of a
|
| 267 |
-
Tcl array variable, which must contain two elements "row" and
|
|
|
|
| 268 |
These are used to set the cursor to the new position: >
|
| 269 |
$win cursor here ;# not $here !
|
| 270 |
< With two arguments, sets the cursor to the specified row and column: >
|
|
@@ -313,8 +314,8 @@ changed, all marks in the buffer are automatically adjusted. Any changes to
|
|
| 313 |
the buffer's contents made by Tcl commands can be undone with the "undo" vim
|
| 314 |
command (see |undo|).
|
| 315 |
|
| 316 |
-
Let's assume the name of the buffer command is stored in the Tcl variable
|
| 317 |
-
i.e. "$buf" calls the command. The following options are available: >
|
| 318 |
|
| 319 |
$buf append {n} {str} # Append a line to buffer, after line {n}.
|
| 320 |
$buf command {cmd} # Execute Ex command in buffers context.
|
|
@@ -404,8 +405,8 @@ Options:
|
|
| 404 |
deleted from the buffer.
|
| 405 |
|
| 406 |
$buf windows *tcl-buffer-windows*
|
| 407 |
-
Creates a window command for each window that displays this buffer,
|
| 408 |
-
returns a list of the command names as the result.
|
| 409 |
Example: >
|
| 410 |
set winlist [$buf windows]
|
| 411 |
foreach win $winlist { $win height 4 }
|
|
|
|
| 1 |
+
*if_tcl.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Ingo Wilken
|
|
|
|
| 234 |
for the current window. A window command is automatically deleted when the
|
| 235 |
corresponding vim window is closed.
|
| 236 |
|
| 237 |
+
Let's assume the name of the window command is stored in the Tcl variable
|
| 238 |
+
"win", i.e. "$win" calls the command. The following options are available: >
|
| 239 |
|
| 240 |
$win buffer # Create Tcl command for window's buffer.
|
| 241 |
$win command {cmd} # Execute Ex command in windows context.
|
|
|
|
| 264 |
array set here [$win cursor]
|
| 265 |
< "here(row)" and "here(column)" now contain the cursor position.
|
| 266 |
With a single argument, the argument is interpreted as the name of a
|
| 267 |
+
Tcl array variable, which must contain two elements "row" and
|
| 268 |
+
"column".
|
| 269 |
These are used to set the cursor to the new position: >
|
| 270 |
$win cursor here ;# not $here !
|
| 271 |
< With two arguments, sets the cursor to the specified row and column: >
|
|
|
|
| 314 |
the buffer's contents made by Tcl commands can be undone with the "undo" vim
|
| 315 |
command (see |undo|).
|
| 316 |
|
| 317 |
+
Let's assume the name of the buffer command is stored in the Tcl variable
|
| 318 |
+
"buf", i.e. "$buf" calls the command. The following options are available: >
|
| 319 |
|
| 320 |
$buf append {n} {str} # Append a line to buffer, after line {n}.
|
| 321 |
$buf command {cmd} # Execute Ex command in buffers context.
|
|
|
|
| 405 |
deleted from the buffer.
|
| 406 |
|
| 407 |
$buf windows *tcl-buffer-windows*
|
| 408 |
+
Creates a window command for each window that displays this buffer,
|
| 409 |
+
and returns a list of the command names as the result.
|
| 410 |
Example: >
|
| 411 |
set winlist [$buf windows]
|
| 412 |
foreach win $winlist { $win height 4 }
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*indent.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -44,7 +44,8 @@ These five options control C program indenting:
|
|
| 44 |
'cinkeys' Specifies which keys trigger reindenting in insert mode.
|
| 45 |
'cinoptions' Sets your preferred indent style.
|
| 46 |
'cinwords' Defines keywords that start an extra indent in the next line.
|
| 47 |
-
'cinscopedecls' Defines strings that are recognized as a C++ scope
|
|
|
|
| 48 |
|
| 49 |
If 'lisp' is not on and 'equalprg' is empty, the "=" operator indents using
|
| 50 |
Vim's built-in algorithm rather than calling an external program.
|
|
@@ -229,8 +230,8 @@ The examples below assume a 'shiftwidth' of 4.
|
|
| 229 |
} } }
|
| 230 |
<
|
| 231 |
*cino-L*
|
| 232 |
-
LN Controls placement of jump labels.
|
| 233 |
-
will be placed at column 1.
|
| 234 |
the label will be the prevailing indent minus N. (default -1).
|
| 235 |
|
| 236 |
cino= cino=L2 cino=Ls >
|
|
@@ -291,8 +292,8 @@ The examples below assume a 'shiftwidth' of 4.
|
|
| 291 |
<
|
| 292 |
*cino-g*
|
| 293 |
gN Place C++ scope declarations N characters from the indent of the
|
| 294 |
-
block they are in. (default 'shiftwidth').
|
| 295 |
-
declaration is "public:", "protected:" or "private:".
|
| 296 |
be adjusted with the 'cinscopedecls' option.
|
| 297 |
|
| 298 |
cino= cino=g0 >
|
|
@@ -714,13 +715,13 @@ FORTRAN *ft-fortran-indent*
|
|
| 714 |
|
| 715 |
Block if, select case, select type, select rank, where, forall, type,
|
| 716 |
interface, associate, block, enum, critical, and change team constructs are
|
| 717 |
-
indented.
|
| 718 |
-
is optional.
|
| 719 |
-
if the Fortran is in free source form, whereas they are not indented
|
| 720 |
-
Fortran is in fixed source form because of the left margin
|
| 721 |
-
manual indent corrections will be necessary for labeled
|
| 722 |
-
continuation lines when fixed source form is being used. For
|
| 723 |
-
discussion of the method used for the detection of source format see
|
| 724 |
|ft-fortran-syntax|.
|
| 725 |
|
| 726 |
Do loops ~
|
|
@@ -819,19 +820,19 @@ Idris 2 indentation can be configured with several variables that control the
|
|
| 819 |
indentation level for different language constructs:
|
| 820 |
|
| 821 |
The "g:idris2_indent_if" variable controls the indentation of `then` and `else`
|
| 822 |
-
blocks after `if` statements.
|
| 823 |
|
| 824 |
The "g:idris2_indent_case" variable controls the indentation of patterns in
|
| 825 |
-
`case` expressions.
|
| 826 |
|
| 827 |
The "g:idris2_indent_let" variable controls the indentation after `let`
|
| 828 |
-
bindings.
|
| 829 |
|
| 830 |
The "g:idris2_indent_rewrite" variable controls the indentation after `rewrite`
|
| 831 |
-
expressions.
|
| 832 |
|
| 833 |
The "g:idris2_indent_where" variable controls the indentation of `where`
|
| 834 |
-
blocks.
|
| 835 |
|
| 836 |
The "g:idris2_indent_do" variable controls the indentation in `do` blocks.
|
| 837 |
Defaults to 3.
|
|
@@ -951,7 +952,7 @@ To indent 'case:' and 'default:' statements in switch() blocks: >
|
|
| 951 |
|
| 952 |
In PHP braces are not required inside 'case/default' blocks therefore 'case:'
|
| 953 |
and 'default:' are indented at the same level than the 'switch()' to avoid
|
| 954 |
-
meaningless indentation.
|
| 955 |
traditional way.
|
| 956 |
-------------
|
| 957 |
|
|
@@ -978,7 +979,7 @@ You will obtain the following result: >
|
|
| 978 |
Extra indentation levels to add to parameters in multi-line function calls. >
|
| 979 |
let g:PHP_IndentFunctionCallParameters = 1
|
| 980 |
|
| 981 |
-
Function call arguments will indent 1 extra level.
|
| 982 |
|
| 983 |
function call_the_thing(
|
| 984 |
$with_this,
|
|
@@ -997,7 +998,7 @@ Extra indentation levels to add to arguments in multi-line function
|
|
| 997 |
definitions. >
|
| 998 |
let g:PHP_IndentFunctionDeclarationParameters = 1
|
| 999 |
|
| 1000 |
-
Function arguments in declarations will indent 1 extra level.
|
| 1001 |
indentation: >
|
| 1002 |
|
| 1003 |
function call_the_thing(
|
|
@@ -1027,8 +1028,8 @@ Indent after a nested paren: >
|
|
| 1027 |
Indent for a continuation line: >
|
| 1028 |
let g:python_indent.continue = 'shiftwidth() * 2'
|
| 1029 |
|
| 1030 |
-
By default, the closing paren on a multiline construct lines up under the
|
| 1031 |
-
non-whitespace character of the previous line.
|
| 1032 |
If you prefer that it's lined up under the first character of the line that
|
| 1033 |
starts the multiline construct, reset this key: >
|
| 1034 |
let g:python_indent.closed_paren_align_last_line = v:false
|
|
@@ -1053,15 +1054,15 @@ For backward compatibility, these variables are also supported: >
|
|
| 1053 |
|
| 1054 |
R *ft-r-indent*
|
| 1055 |
|
| 1056 |
-
Function arguments are aligned if they span for multiple lines.
|
| 1057 |
do not have the arguments of functions aligned, put in your |vimrc|:
|
| 1058 |
>
|
| 1059 |
let r_indent_align_args = 0
|
| 1060 |
<
|
| 1061 |
All lines beginning with a comment character, #, get the same indentation
|
| 1062 |
-
level of the normal R code.
|
| 1063 |
beginning with a single # indented in the 40th column, ## indented as R code,
|
| 1064 |
-
and ### not indented.
|
| 1065 |
characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
|
| 1066 |
>
|
| 1067 |
let r_indent_ess_comments = 1
|
|
@@ -1072,8 +1073,8 @@ r_indent_comment_column, as in the example below:
|
|
| 1072 |
>
|
| 1073 |
let r_indent_comment_column = 30
|
| 1074 |
<
|
| 1075 |
-
Any code after a line that ends with "<-" is indented.
|
| 1076 |
-
indent the code if it is a top-level function.
|
| 1077 |
Emacs/ESS one in this regard, put in your |vimrc|:
|
| 1078 |
>
|
| 1079 |
let r_indent_ess_compatible = 1
|
|
@@ -1088,7 +1089,7 @@ Below is an example of indentation with and without this option enabled:
|
|
| 1088 |
} }
|
| 1089 |
<
|
| 1090 |
The code will be indented after lines that match the pattern
|
| 1091 |
-
`'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`.
|
| 1092 |
lines that match a different pattern, you should set the appropriate value of
|
| 1093 |
`r_indent_op_pattern` in your |vimrc|.
|
| 1094 |
|
|
@@ -1153,7 +1154,7 @@ Make sure to do ":set cmdheight=2" first to allow the display of the message.
|
|
| 1153 |
|
| 1154 |
VHDL *ft-vhdl-indent*
|
| 1155 |
|
| 1156 |
-
Alignment of generic/port mapping statements are performed by default.
|
| 1157 |
causes the following alignment example: >
|
| 1158 |
|
| 1159 |
ENTITY sync IS
|
|
@@ -1183,7 +1184,7 @@ to the .vimrc file, which causes the previous alignment example to change: >
|
|
| 1183 |
----------------------------------------
|
| 1184 |
|
| 1185 |
Alignment of right-hand side assignment "<=" statements are performed by
|
| 1186 |
-
default.
|
| 1187 |
|
| 1188 |
sig_out <= (bus_a(1) AND
|
| 1189 |
(sig_b OR sig_c)) OR
|
|
@@ -1201,9 +1202,9 @@ to the .vimrc file, which causes the previous alignment example to change: >
|
|
| 1201 |
|
| 1202 |
----------------------------------------
|
| 1203 |
|
| 1204 |
-
Full-line comments (lines that begin with "--") are indented to be aligned
|
| 1205 |
-
the very previous line's comment, PROVIDED that a whitespace follows
|
| 1206 |
-
"--".
|
| 1207 |
|
| 1208 |
For example: >
|
| 1209 |
|
|
@@ -1255,9 +1256,9 @@ results in: >
|
|
| 1255 |
Notice that "--debug_code:" does not align with "-- comment 2"
|
| 1256 |
because there is no whitespace that follows after "--" in "--debug_code:".
|
| 1257 |
|
| 1258 |
-
Given the dynamic nature of indenting comments, indenting should be done
|
| 1259 |
-
On the first pass, code will be indented.
|
| 1260 |
-
comments will be indented according to the correctly indented code.
|
| 1261 |
|
| 1262 |
|
| 1263 |
VIM *ft-vim-indent*
|
|
|
|
| 1 |
+
*indent.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 44 |
'cinkeys' Specifies which keys trigger reindenting in insert mode.
|
| 45 |
'cinoptions' Sets your preferred indent style.
|
| 46 |
'cinwords' Defines keywords that start an extra indent in the next line.
|
| 47 |
+
'cinscopedecls' Defines strings that are recognized as a C++ scope
|
| 48 |
+
declaration.
|
| 49 |
|
| 50 |
If 'lisp' is not on and 'equalprg' is empty, the "=" operator indents using
|
| 51 |
Vim's built-in algorithm rather than calling an external program.
|
|
|
|
| 230 |
} } }
|
| 231 |
<
|
| 232 |
*cino-L*
|
| 233 |
+
LN Controls placement of jump labels. If N is negative, the label
|
| 234 |
+
will be placed at column 1. If N is non-negative, the indent of
|
| 235 |
the label will be the prevailing indent minus N. (default -1).
|
| 236 |
|
| 237 |
cino= cino=L2 cino=Ls >
|
|
|
|
| 292 |
<
|
| 293 |
*cino-g*
|
| 294 |
gN Place C++ scope declarations N characters from the indent of the
|
| 295 |
+
block they are in. (default 'shiftwidth'). By default, a scope
|
| 296 |
+
declaration is "public:", "protected:" or "private:". This can
|
| 297 |
be adjusted with the 'cinscopedecls' option.
|
| 298 |
|
| 299 |
cino= cino=g0 >
|
|
|
|
| 715 |
|
| 716 |
Block if, select case, select type, select rank, where, forall, type,
|
| 717 |
interface, associate, block, enum, critical, and change team constructs are
|
| 718 |
+
indented. The indenting of subroutines, functions, modules, and program
|
| 719 |
+
blocks is optional. Comments, labeled statements, and continuation lines are
|
| 720 |
+
indented if the Fortran is in free source form, whereas they are not indented
|
| 721 |
+
if the Fortran is in fixed source form because of the left margin
|
| 722 |
+
requirements. Hence manual indent corrections will be necessary for labeled
|
| 723 |
+
statements and continuation lines when fixed source form is being used. For
|
| 724 |
+
further discussion of the method used for the detection of source format see
|
| 725 |
|ft-fortran-syntax|.
|
| 726 |
|
| 727 |
Do loops ~
|
|
|
|
| 820 |
indentation level for different language constructs:
|
| 821 |
|
| 822 |
The "g:idris2_indent_if" variable controls the indentation of `then` and `else`
|
| 823 |
+
blocks after `if` statements. Defaults to 3.
|
| 824 |
|
| 825 |
The "g:idris2_indent_case" variable controls the indentation of patterns in
|
| 826 |
+
`case` expressions. Defaults to 5.
|
| 827 |
|
| 828 |
The "g:idris2_indent_let" variable controls the indentation after `let`
|
| 829 |
+
bindings. Defaults to 4.
|
| 830 |
|
| 831 |
The "g:idris2_indent_rewrite" variable controls the indentation after `rewrite`
|
| 832 |
+
expressions. Defaults to 8.
|
| 833 |
|
| 834 |
The "g:idris2_indent_where" variable controls the indentation of `where`
|
| 835 |
+
blocks. Defaults to 6.
|
| 836 |
|
| 837 |
The "g:idris2_indent_do" variable controls the indentation in `do` blocks.
|
| 838 |
Defaults to 3.
|
|
|
|
| 952 |
|
| 953 |
In PHP braces are not required inside 'case/default' blocks therefore 'case:'
|
| 954 |
and 'default:' are indented at the same level than the 'switch()' to avoid
|
| 955 |
+
meaningless indentation. You can use the above option to return to the
|
| 956 |
traditional way.
|
| 957 |
-------------
|
| 958 |
|
|
|
|
| 979 |
Extra indentation levels to add to parameters in multi-line function calls. >
|
| 980 |
let g:PHP_IndentFunctionCallParameters = 1
|
| 981 |
|
| 982 |
+
Function call arguments will indent 1 extra level. For two-space indentation: >
|
| 983 |
|
| 984 |
function call_the_thing(
|
| 985 |
$with_this,
|
|
|
|
| 998 |
definitions. >
|
| 999 |
let g:PHP_IndentFunctionDeclarationParameters = 1
|
| 1000 |
|
| 1001 |
+
Function arguments in declarations will indent 1 extra level. For two-space
|
| 1002 |
indentation: >
|
| 1003 |
|
| 1004 |
function call_the_thing(
|
|
|
|
| 1028 |
Indent for a continuation line: >
|
| 1029 |
let g:python_indent.continue = 'shiftwidth() * 2'
|
| 1030 |
|
| 1031 |
+
By default, the closing paren on a multiline construct lines up under the
|
| 1032 |
+
first non-whitespace character of the previous line.
|
| 1033 |
If you prefer that it's lined up under the first character of the line that
|
| 1034 |
starts the multiline construct, reset this key: >
|
| 1035 |
let g:python_indent.closed_paren_align_last_line = v:false
|
|
|
|
| 1054 |
|
| 1055 |
R *ft-r-indent*
|
| 1056 |
|
| 1057 |
+
Function arguments are aligned if they span for multiple lines. If you prefer
|
| 1058 |
do not have the arguments of functions aligned, put in your |vimrc|:
|
| 1059 |
>
|
| 1060 |
let r_indent_align_args = 0
|
| 1061 |
<
|
| 1062 |
All lines beginning with a comment character, #, get the same indentation
|
| 1063 |
+
level of the normal R code. Users of Emacs/ESS may be used to have lines
|
| 1064 |
beginning with a single # indented in the 40th column, ## indented as R code,
|
| 1065 |
+
and ### not indented. If you prefer that lines beginning with comment
|
| 1066 |
characters are aligned as they are by Emacs/ESS, put in your |vimrc|:
|
| 1067 |
>
|
| 1068 |
let r_indent_ess_comments = 1
|
|
|
|
| 1073 |
>
|
| 1074 |
let r_indent_comment_column = 30
|
| 1075 |
<
|
| 1076 |
+
Any code after a line that ends with "<-" is indented. Emacs/ESS does not
|
| 1077 |
+
indent the code if it is a top-level function. If you prefer a behavior like
|
| 1078 |
Emacs/ESS one in this regard, put in your |vimrc|:
|
| 1079 |
>
|
| 1080 |
let r_indent_ess_compatible = 1
|
|
|
|
| 1089 |
} }
|
| 1090 |
<
|
| 1091 |
The code will be indented after lines that match the pattern
|
| 1092 |
+
`'\(&\||\|+\|-\|\*\|/\|=\|\~\|%\|->\)\s*$'`. If you want indentation after
|
| 1093 |
lines that match a different pattern, you should set the appropriate value of
|
| 1094 |
`r_indent_op_pattern` in your |vimrc|.
|
| 1095 |
|
|
|
|
| 1154 |
|
| 1155 |
VHDL *ft-vhdl-indent*
|
| 1156 |
|
| 1157 |
+
Alignment of generic/port mapping statements are performed by default. This
|
| 1158 |
causes the following alignment example: >
|
| 1159 |
|
| 1160 |
ENTITY sync IS
|
|
|
|
| 1184 |
----------------------------------------
|
| 1185 |
|
| 1186 |
Alignment of right-hand side assignment "<=" statements are performed by
|
| 1187 |
+
default. This causes the following alignment example: >
|
| 1188 |
|
| 1189 |
sig_out <= (bus_a(1) AND
|
| 1190 |
(sig_b OR sig_c)) OR
|
|
|
|
| 1202 |
|
| 1203 |
----------------------------------------
|
| 1204 |
|
| 1205 |
+
Full-line comments (lines that begin with "--") are indented to be aligned
|
| 1206 |
+
with the very previous line's comment, PROVIDED that a whitespace follows
|
| 1207 |
+
after "--".
|
| 1208 |
|
| 1209 |
For example: >
|
| 1210 |
|
|
|
|
| 1256 |
Notice that "--debug_code:" does not align with "-- comment 2"
|
| 1257 |
because there is no whitespace that follows after "--" in "--debug_code:".
|
| 1258 |
|
| 1259 |
+
Given the dynamic nature of indenting comments, indenting should be done
|
| 1260 |
+
TWICE. On the first pass, code will be indented. On the second pass,
|
| 1261 |
+
full-line comments will be indented according to the correctly indented code.
|
| 1262 |
|
| 1263 |
|
| 1264 |
VIM *ft-vim-indent*
|
|
@@ -130,7 +130,7 @@ CTRL-R {register} *i_CTRL-R*
|
|
| 130 |
'.' the last inserted text
|
| 131 |
*i_CTRL-R_-*
|
| 132 |
'-' the last small (less than a line) delete
|
| 133 |
-
register.
|
| 134 |
it remembers the register to put instead of
|
| 135 |
the literal text to insert.
|
| 136 |
*i_CTRL-R_=*
|
|
@@ -167,12 +167,12 @@ CTRL-R CTRL-R {register} *i_CTRL-R_CTRL-R*
|
|
| 167 |
CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
|
| 168 |
Insert the contents of a register literally and don't
|
| 169 |
auto-indent. Does the same as pasting with the mouse
|
| 170 |
-
|<MiddleMouse>|.
|
| 171 |
insert the text above the current line, like with `P`.
|
| 172 |
The '.' register (last inserted text) is still inserted as
|
| 173 |
typed.
|
| 174 |
After this command, the '.' register contains the command
|
| 175 |
-
typed and not the text.
|
| 176 |
text from the register.
|
| 177 |
Does not replace characters in |Replace-mode|!
|
| 178 |
|
|
@@ -182,7 +182,7 @@ CTRL-R CTRL-P {register} *i_CTRL-R_CTRL-P*
|
|
| 182 |
The '.' register (last inserted text) is still inserted as
|
| 183 |
typed.
|
| 184 |
After this command, the '.' register contains the command
|
| 185 |
-
typed and not the text.
|
| 186 |
text from the register.
|
| 187 |
Does not replace characters in |Replace-mode|!
|
| 188 |
|
|
@@ -559,10 +559,10 @@ extra spaces to get where you want to be.
|
|
| 559 |
|
| 560 |
*ins-smarttab*
|
| 561 |
When the 'smarttab' option is on, the <Tab> key indents by 'shiftwidth' if the
|
| 562 |
-
cursor is in leading whitespace. The <BS> key has the opposite effect.
|
| 563 |
-
behaves as if 'softtabstop' were set to the value of 'shiftwidth'.
|
| 564 |
-
allows the user to set 'softtabstop' to a value other than 'shiftwidth'
|
| 565 |
-
still use the <Tab> key for indentation.
|
| 566 |
|
| 567 |
==============================================================================
|
| 568 |
5. Replace mode *Replace* *Replace-mode* *mode-replace*
|
|
@@ -663,7 +663,8 @@ not a valid CTRL-X mode command. Valid keys are the CTRL-X command itself,
|
|
| 663 |
CTRL-N (next), and CTRL-P (previous).
|
| 664 |
|
| 665 |
By default, the possible completions are showed in a menu and the first
|
| 666 |
-
completion is inserted into the text.
|
|
|
|
| 667 |
|
| 668 |
To get the current completion information, |complete_info()| can be used.
|
| 669 |
Also see the 'infercase' option if you want to adjust the case of the match.
|
|
@@ -889,7 +890,7 @@ Completing keywords with 'thesaurusfunc' *compl-thesaurusfunc*
|
|
| 889 |
|
| 890 |
If the 'thesaurusfunc' option is set, then the user specified function is
|
| 891 |
invoked to get the list of completion matches and the 'thesaurus' option is
|
| 892 |
-
not used.
|
| 893 |
invoked and what it should return.
|
| 894 |
|
| 895 |
Here is an example that uses the "aiksaurus" command (provided by Magnus
|
|
@@ -1139,8 +1140,8 @@ CTRL-X CTRL-Z Stop completion without changing the text.
|
|
| 1139 |
AUTOCOMPLETION *ins-autocompletion*
|
| 1140 |
|
| 1141 |
Vim can display a completion menu as you type, similar to using |i_CTRL-N|,
|
| 1142 |
-
but triggered automatically. See 'autocomplete'.
|
| 1143 |
-
from the sources listed in the 'complete' option, in order.
|
| 1144 |
|
| 1145 |
A decaying timeout keeps Vim responsive. Sources earlier in the 'complete'
|
| 1146 |
list get more time (higher priority), but all sources receive at least a small
|
|
@@ -1248,7 +1249,7 @@ items:
|
|
| 1248 |
items to be equal; when omitted zero is used, thus
|
| 1249 |
items that only differ in case are added
|
| 1250 |
equal when non-zero, always treat this item to be equal when
|
| 1251 |
-
comparing.
|
| 1252 |
of this item.
|
| 1253 |
dup when non-zero this match will be added even when an
|
| 1254 |
item with the same word is already present.
|
|
@@ -1264,7 +1265,7 @@ items:
|
|
| 1264 |
properties (with higher priority) like strikethrough
|
| 1265 |
to the completion items abbreviation
|
| 1266 |
kind_hlgroup an additional highlight group specifically for setting
|
| 1267 |
-
the highlight attributes of the completion kind.
|
| 1268 |
this field is present, it will override the
|
| 1269 |
|hl-PmenuKind| highlight group, allowing for the
|
| 1270 |
customization of ctermfg and guifg properties for the
|
|
@@ -1455,7 +1456,8 @@ any printable, non-white character:
|
|
| 1455 |
Add this character and reduce the number of matches.
|
| 1456 |
|
| 1457 |
In all three states these can be used:
|
| 1458 |
-
CTRL-Y Yes: Accept the currently selected match and stop
|
|
|
|
| 1459 |
CTRL-E End completion, go back to what was there before selecting a
|
| 1460 |
match (what was typed or longest common string).
|
| 1461 |
<PageUp> Select a match several entries back, but don't insert it.
|
|
@@ -1559,7 +1561,7 @@ XHTML *ft-xhtml-omni*
|
|
| 1559 |
|
| 1560 |
CTRL-X CTRL-O provides completion of various elements of (X)HTML files. It is
|
| 1561 |
designed to support writing of XHTML 1.0 Strict files but will also work for
|
| 1562 |
-
other versions of HTML.
|
| 1563 |
|
| 1564 |
- after "<" complete tag name depending on context (no div suggestion inside
|
| 1565 |
of an a tag); '/>' indicates empty tags
|
|
@@ -1577,7 +1579,7 @@ other versions of HTML. Features:
|
|
| 1577 |
|
| 1578 |
Note: When used first time completion menu will be shown with little delay
|
| 1579 |
- this is time needed for loading of data file.
|
| 1580 |
-
Note: Completion may fail in badly formatted documents.
|
| 1581 |
run |:make| command to detect formatting problems.
|
| 1582 |
|
| 1583 |
|
|
@@ -1591,7 +1593,7 @@ When doing completion outside of any other tag you will have possibility to
|
|
| 1591 |
choose DOCTYPE and the appropriate data file will be loaded and used for all
|
| 1592 |
next completions.
|
| 1593 |
|
| 1594 |
-
More about format of data file in |xml-omni-datafile|.
|
| 1595 |
may be found on the Vim website (|www|).
|
| 1596 |
|
| 1597 |
Note that b:html_omni_flavor may point to a file with any XML data. This
|
|
@@ -1620,8 +1622,8 @@ of external files).
|
|
| 1620 |
DOM compatibility
|
| 1621 |
|
| 1622 |
At the moment (beginning of 2006) there are two main browsers - MS Internet
|
| 1623 |
-
Explorer and Mozilla Firefox.
|
| 1624 |
-
market.
|
| 1625 |
(http://www.w3c.org) but they are not always followed/implemented.
|
| 1626 |
|
| 1627 |
IE FF W3C Omni completion ~
|
|
@@ -1631,16 +1633,16 @@ market. Theoretically standards are created by W3C organisation
|
|
| 1631 |
- + - - ~
|
| 1632 |
|
| 1633 |
Regardless from state of implementation in browsers but if element is defined
|
| 1634 |
-
in standards, completion plugin will place element in suggestion list.
|
| 1635 |
both major engines implemented element, even if this is not in standards it
|
| 1636 |
-
will be suggested.
|
| 1637 |
|
| 1638 |
|
| 1639 |
PHP *ft-php-omni*
|
| 1640 |
|
| 1641 |
Completion of PHP code requires a tags file for completion of data from
|
| 1642 |
-
external files and for class aware completion.
|
| 1643 |
-
Exuberant ctags version 5.5.4 or newer.
|
| 1644 |
|
| 1645 |
Universal Ctags: https://ctags.io
|
| 1646 |
Exuberant Ctags: http://ctags.sourceforge.net
|
|
@@ -1648,11 +1650,12 @@ Exuberant ctags version 5.5.4 or newer. You can find it here:
|
|
| 1648 |
Script completes:
|
| 1649 |
|
| 1650 |
- after $ variables name
|
| 1651 |
-
- if variable was declared as object add "->", if tags file is available
|
| 1652 |
-
name of class
|
| 1653 |
- after "->" complete only function and variable names specific for given
|
| 1654 |
-
class.
|
| 1655 |
-
PHP isn't strongly typed language user can use @var tag to declare
|
|
|
|
| 1656 |
|
| 1657 |
/* @var $myVar myClass */
|
| 1658 |
$myVar->
|
|
@@ -1670,11 +1673,11 @@ Script completes:
|
|
| 1670 |
|
| 1671 |
|
| 1672 |
Note: when doing completion first time Vim will load all necessary data into
|
| 1673 |
-
memory.
|
| 1674 |
should not be noticeable.
|
| 1675 |
|
| 1676 |
-
Script detects if cursor is inside <?php ?> tags.
|
| 1677 |
-
automatically switch to HTML/CSS/JavaScript completion.
|
| 1678 |
original HTML files completion of tags (and only tags) isn't context aware.
|
| 1679 |
|
| 1680 |
|
|
@@ -1701,11 +1704,11 @@ The completions provided by CTRL-X CTRL-O are sensitive to the context:
|
|
| 1701 |
|
| 1702 |
Notes:
|
| 1703 |
- Vim will load/evaluate code in order to provide completions. This may
|
| 1704 |
-
cause some code execution, which may be a concern.
|
| 1705 |
enabled by default, to enable this feature add >
|
| 1706 |
let g:rubycomplete_buffer_loading = 1
|
| 1707 |
<- In context 1 above, Vim can parse the entire buffer to add a list of
|
| 1708 |
-
classes to the completion results.
|
| 1709 |
to enable it add >
|
| 1710 |
let g:rubycomplete_classes_in_global = 1
|
| 1711 |
< to your vimrc
|
|
@@ -1713,7 +1716,7 @@ Notes:
|
|
| 1713 |
- In context 3 above, Vim will attempt to determine the methods supported by
|
| 1714 |
the object.
|
| 1715 |
- Vim can detect and load the Rails environment for files within a rails
|
| 1716 |
-
project.
|
| 1717 |
let g:rubycomplete_rails = 1
|
| 1718 |
< to your vimrc
|
| 1719 |
|
|
@@ -1750,11 +1753,11 @@ a look at the PHP filetype to see how this works.
|
|
| 1750 |
If you edit a file called, index.php, run the following command: >
|
| 1751 |
syntax list
|
| 1752 |
|
| 1753 |
-
The first thing you will notice is that there are many different syntax
|
| 1754 |
-
The PHP language can include elements from different languages like
|
| 1755 |
-
JavaScript and many more. The syntax plugin will only include syntax
|
| 1756 |
-
that begin with the filetype, "php", in this case. For example these
|
| 1757 |
-
groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
| 1758 |
phpFunctions.
|
| 1759 |
|
| 1760 |
If you wish non-filetype syntax items to also be included, you can use a
|
|
@@ -1873,7 +1876,7 @@ be used in commands. It should be a unique name which will not create
|
|
| 1873 |
conflicts. For example, the name xhtml10s.vim means it is the data file for
|
| 1874 |
XHTML 1.0 Strict.
|
| 1875 |
|
| 1876 |
-
Each file contains a variable with a name like g:xmldata_xhtml10s .
|
| 1877 |
a compound from two parts:
|
| 1878 |
|
| 1879 |
1. "g:xmldata_" general prefix, constant for all data files
|
|
@@ -2090,7 +2093,7 @@ These two commands will keep on asking for lines, until you type a line
|
|
| 2090 |
containing only a ".". Watch out for lines starting with a backslash, see
|
| 2091 |
|line-continuation|.
|
| 2092 |
|
| 2093 |
-
Text typed after a "|" command separator is used first.
|
| 2094 |
command in ex mode: >
|
| 2095 |
:a|one
|
| 2096 |
two
|
|
|
|
| 130 |
'.' the last inserted text
|
| 131 |
*i_CTRL-R_-*
|
| 132 |
'-' the last small (less than a line) delete
|
| 133 |
+
register. This is repeatable using |.| since
|
| 134 |
it remembers the register to put instead of
|
| 135 |
the literal text to insert.
|
| 136 |
*i_CTRL-R_=*
|
|
|
|
| 167 |
CTRL-R CTRL-O {register} *i_CTRL-R_CTRL-O*
|
| 168 |
Insert the contents of a register literally and don't
|
| 169 |
auto-indent. Does the same as pasting with the mouse
|
| 170 |
+
|<MiddleMouse>|. When the register is linewise this will
|
| 171 |
insert the text above the current line, like with `P`.
|
| 172 |
The '.' register (last inserted text) is still inserted as
|
| 173 |
typed.
|
| 174 |
After this command, the '.' register contains the command
|
| 175 |
+
typed and not the text. I.e., the literals "^R^O" and not the
|
| 176 |
text from the register.
|
| 177 |
Does not replace characters in |Replace-mode|!
|
| 178 |
|
|
|
|
| 182 |
The '.' register (last inserted text) is still inserted as
|
| 183 |
typed.
|
| 184 |
After this command, the '.' register contains the command
|
| 185 |
+
typed and not the text. I.e., the literals "^R^P" and not the
|
| 186 |
text from the register.
|
| 187 |
Does not replace characters in |Replace-mode|!
|
| 188 |
|
|
|
|
| 559 |
|
| 560 |
*ins-smarttab*
|
| 561 |
When the 'smarttab' option is on, the <Tab> key indents by 'shiftwidth' if the
|
| 562 |
+
cursor is in leading whitespace. The <BS> key has the opposite effect. This
|
| 563 |
+
behaves as if 'softtabstop' were set to the value of 'shiftwidth'. This
|
| 564 |
+
option allows the user to set 'softtabstop' to a value other than 'shiftwidth'
|
| 565 |
+
and still use the <Tab> key for indentation.
|
| 566 |
|
| 567 |
==============================================================================
|
| 568 |
5. Replace mode *Replace* *Replace-mode* *mode-replace*
|
|
|
|
| 663 |
CTRL-N (next), and CTRL-P (previous).
|
| 664 |
|
| 665 |
By default, the possible completions are showed in a menu and the first
|
| 666 |
+
completion is inserted into the text. This can be adjusted with
|
| 667 |
+
'completeopt'.
|
| 668 |
|
| 669 |
To get the current completion information, |complete_info()| can be used.
|
| 670 |
Also see the 'infercase' option if you want to adjust the case of the match.
|
|
|
|
| 890 |
|
| 891 |
If the 'thesaurusfunc' option is set, then the user specified function is
|
| 892 |
invoked to get the list of completion matches and the 'thesaurus' option is
|
| 893 |
+
not used. See |complete-functions| for an explanation of how the function is
|
| 894 |
invoked and what it should return.
|
| 895 |
|
| 896 |
Here is an example that uses the "aiksaurus" command (provided by Magnus
|
|
|
|
| 1140 |
AUTOCOMPLETION *ins-autocompletion*
|
| 1141 |
|
| 1142 |
Vim can display a completion menu as you type, similar to using |i_CTRL-N|,
|
| 1143 |
+
but triggered automatically. See 'autocomplete'. The menu items are
|
| 1144 |
+
collected from the sources listed in the 'complete' option, in order.
|
| 1145 |
|
| 1146 |
A decaying timeout keeps Vim responsive. Sources earlier in the 'complete'
|
| 1147 |
list get more time (higher priority), but all sources receive at least a small
|
|
|
|
| 1249 |
items to be equal; when omitted zero is used, thus
|
| 1250 |
items that only differ in case are added
|
| 1251 |
equal when non-zero, always treat this item to be equal when
|
| 1252 |
+
comparing. Which means, "equal=1" disables filtering
|
| 1253 |
of this item.
|
| 1254 |
dup when non-zero this match will be added even when an
|
| 1255 |
item with the same word is already present.
|
|
|
|
| 1265 |
properties (with higher priority) like strikethrough
|
| 1266 |
to the completion items abbreviation
|
| 1267 |
kind_hlgroup an additional highlight group specifically for setting
|
| 1268 |
+
the highlight attributes of the completion kind. When
|
| 1269 |
this field is present, it will override the
|
| 1270 |
|hl-PmenuKind| highlight group, allowing for the
|
| 1271 |
customization of ctermfg and guifg properties for the
|
|
|
|
| 1456 |
Add this character and reduce the number of matches.
|
| 1457 |
|
| 1458 |
In all three states these can be used:
|
| 1459 |
+
CTRL-Y Yes: Accept the currently selected match and stop
|
| 1460 |
+
completion.
|
| 1461 |
CTRL-E End completion, go back to what was there before selecting a
|
| 1462 |
match (what was typed or longest common string).
|
| 1463 |
<PageUp> Select a match several entries back, but don't insert it.
|
|
|
|
| 1561 |
|
| 1562 |
CTRL-X CTRL-O provides completion of various elements of (X)HTML files. It is
|
| 1563 |
designed to support writing of XHTML 1.0 Strict files but will also work for
|
| 1564 |
+
other versions of HTML. Features:
|
| 1565 |
|
| 1566 |
- after "<" complete tag name depending on context (no div suggestion inside
|
| 1567 |
of an a tag); '/>' indicates empty tags
|
|
|
|
| 1579 |
|
| 1580 |
Note: When used first time completion menu will be shown with little delay
|
| 1581 |
- this is time needed for loading of data file.
|
| 1582 |
+
Note: Completion may fail in badly formatted documents. In such case try to
|
| 1583 |
run |:make| command to detect formatting problems.
|
| 1584 |
|
| 1585 |
|
|
|
|
| 1593 |
choose DOCTYPE and the appropriate data file will be loaded and used for all
|
| 1594 |
next completions.
|
| 1595 |
|
| 1596 |
+
More about format of data file in |xml-omni-datafile|. Some of the data files
|
| 1597 |
may be found on the Vim website (|www|).
|
| 1598 |
|
| 1599 |
Note that b:html_omni_flavor may point to a file with any XML data. This
|
|
|
|
| 1622 |
DOM compatibility
|
| 1623 |
|
| 1624 |
At the moment (beginning of 2006) there are two main browsers - MS Internet
|
| 1625 |
+
Explorer and Mozilla Firefox. These two applications are covering over 90% of
|
| 1626 |
+
market. Theoretically standards are created by W3C organisation
|
| 1627 |
(http://www.w3c.org) but they are not always followed/implemented.
|
| 1628 |
|
| 1629 |
IE FF W3C Omni completion ~
|
|
|
|
| 1633 |
- + - - ~
|
| 1634 |
|
| 1635 |
Regardless from state of implementation in browsers but if element is defined
|
| 1636 |
+
in standards, completion plugin will place element in suggestion list. When
|
| 1637 |
both major engines implemented element, even if this is not in standards it
|
| 1638 |
+
will be suggested. All other elements are not placed in suggestion list.
|
| 1639 |
|
| 1640 |
|
| 1641 |
PHP *ft-php-omni*
|
| 1642 |
|
| 1643 |
Completion of PHP code requires a tags file for completion of data from
|
| 1644 |
+
external files and for class aware completion. You should use Universal/
|
| 1645 |
+
Exuberant ctags version 5.5.4 or newer. You can find it here:
|
| 1646 |
|
| 1647 |
Universal Ctags: https://ctags.io
|
| 1648 |
Exuberant Ctags: http://ctags.sourceforge.net
|
|
|
|
| 1650 |
Script completes:
|
| 1651 |
|
| 1652 |
- after $ variables name
|
| 1653 |
+
- if variable was declared as object add "->", if tags file is available
|
| 1654 |
+
show name of class
|
| 1655 |
- after "->" complete only function and variable names specific for given
|
| 1656 |
+
class. To find class location and contents tags file is required.
|
| 1657 |
+
Because PHP isn't strongly typed language user can use @var tag to declare
|
| 1658 |
+
class: >
|
| 1659 |
|
| 1660 |
/* @var $myVar myClass */
|
| 1661 |
$myVar->
|
|
|
|
| 1673 |
|
| 1674 |
|
| 1675 |
Note: when doing completion first time Vim will load all necessary data into
|
| 1676 |
+
memory. It may take several seconds. After next use of completion delay
|
| 1677 |
should not be noticeable.
|
| 1678 |
|
| 1679 |
+
Script detects if cursor is inside <?php ?> tags. If it is outside it will
|
| 1680 |
+
automatically switch to HTML/CSS/JavaScript completion. Note: contrary to
|
| 1681 |
original HTML files completion of tags (and only tags) isn't context aware.
|
| 1682 |
|
| 1683 |
|
|
|
|
| 1704 |
|
| 1705 |
Notes:
|
| 1706 |
- Vim will load/evaluate code in order to provide completions. This may
|
| 1707 |
+
cause some code execution, which may be a concern. This is no longer
|
| 1708 |
enabled by default, to enable this feature add >
|
| 1709 |
let g:rubycomplete_buffer_loading = 1
|
| 1710 |
<- In context 1 above, Vim can parse the entire buffer to add a list of
|
| 1711 |
+
classes to the completion results. This feature is turned off by default,
|
| 1712 |
to enable it add >
|
| 1713 |
let g:rubycomplete_classes_in_global = 1
|
| 1714 |
< to your vimrc
|
|
|
|
| 1716 |
- In context 3 above, Vim will attempt to determine the methods supported by
|
| 1717 |
the object.
|
| 1718 |
- Vim can detect and load the Rails environment for files within a rails
|
| 1719 |
+
project. The feature is disabled by default, to enable it add >
|
| 1720 |
let g:rubycomplete_rails = 1
|
| 1721 |
< to your vimrc
|
| 1722 |
|
|
|
|
| 1753 |
If you edit a file called, index.php, run the following command: >
|
| 1754 |
syntax list
|
| 1755 |
|
| 1756 |
+
The first thing you will notice is that there are many different syntax
|
| 1757 |
+
groups. The PHP language can include elements from different languages like
|
| 1758 |
+
HTML, JavaScript and many more. The syntax plugin will only include syntax
|
| 1759 |
+
groups that begin with the filetype, "php", in this case. For example these
|
| 1760 |
+
syntax groups are included by default with the PHP: phpEnvVar, phpIntVar,
|
| 1761 |
phpFunctions.
|
| 1762 |
|
| 1763 |
If you wish non-filetype syntax items to also be included, you can use a
|
|
|
|
| 1876 |
conflicts. For example, the name xhtml10s.vim means it is the data file for
|
| 1877 |
XHTML 1.0 Strict.
|
| 1878 |
|
| 1879 |
+
Each file contains a variable with a name like g:xmldata_xhtml10s . It is
|
| 1880 |
a compound from two parts:
|
| 1881 |
|
| 1882 |
1. "g:xmldata_" general prefix, constant for all data files
|
|
|
|
| 2093 |
containing only a ".". Watch out for lines starting with a backslash, see
|
| 2094 |
|line-continuation|.
|
| 2095 |
|
| 2096 |
+
Text typed after a "|" command separator is used first. So the following
|
| 2097 |
command in ex mode: >
|
| 2098 |
:a|one
|
| 2099 |
two
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*intro.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -99,7 +99,8 @@ There are several mailing lists for Vim:
|
|
| 99 |
For discussions about using and improving the Macintosh version of
|
| 100 |
Vim.
|
| 101 |
<vim-security@googlegroups.com> *vim-security*
|
| 102 |
-
This list is for (privately) discussing security relevant issues of
|
|
|
|
| 103 |
|
| 104 |
See http://www.vim.org/maillist.php for the latest information.
|
| 105 |
|
|
@@ -236,7 +237,8 @@ Vim would never have become what it is now, without the help of these people!
|
|
| 236 |
Felix von Leitner Previous maintainer of Vim Mailing Lists
|
| 237 |
David Leonard Port of Python extensions to Unix
|
| 238 |
Avner Lottem Edit in right-to-left windows
|
| 239 |
-
Flemming Madsen X11 client-server, various features and
|
|
|
|
| 240 |
Tony Mechelynck answers many user questions
|
| 241 |
Paul Moore Python interface extensions, many patches
|
| 242 |
Katsuhito Nagano Work on multibyte versions
|
|
@@ -606,8 +608,8 @@ Operator-pending mode This is like Normal mode, but after an operator
|
|
| 606 |
|
| 607 |
Replace mode Replace mode is a special case of Insert mode. You
|
| 608 |
can do the same things as in Insert mode, but for
|
| 609 |
-
each character you enter, one character of the
|
| 610 |
-
text is deleted. See |Replace-mode|.
|
| 611 |
If the 'showmode' option is on "-- REPLACE --" is
|
| 612 |
shown at the bottom of the window.
|
| 613 |
|
|
|
|
| 1 |
+
*intro.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 99 |
For discussions about using and improving the Macintosh version of
|
| 100 |
Vim.
|
| 101 |
<vim-security@googlegroups.com> *vim-security*
|
| 102 |
+
This list is for (privately) discussing security relevant issues of
|
| 103 |
+
Vim.
|
| 104 |
|
| 105 |
See http://www.vim.org/maillist.php for the latest information.
|
| 106 |
|
|
|
|
| 237 |
Felix von Leitner Previous maintainer of Vim Mailing Lists
|
| 238 |
David Leonard Port of Python extensions to Unix
|
| 239 |
Avner Lottem Edit in right-to-left windows
|
| 240 |
+
Flemming Madsen X11 client-server, various features and
|
| 241 |
+
patches
|
| 242 |
Tony Mechelynck answers many user questions
|
| 243 |
Paul Moore Python interface extensions, many patches
|
| 244 |
Katsuhito Nagano Work on multibyte versions
|
|
|
|
| 608 |
|
| 609 |
Replace mode Replace mode is a special case of Insert mode. You
|
| 610 |
can do the same things as in Insert mode, but for
|
| 611 |
+
each character you enter, one character of the
|
| 612 |
+
existing text is deleted. See |Replace-mode|.
|
| 613 |
If the 'showmode' option is on "-- REPLACE --" is
|
| 614 |
shown at the bottom of the window.
|
| 615 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*map.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -105,7 +105,7 @@ modes.
|
|
| 105 |
map command applies. The mapping may remain defined
|
| 106 |
for other modes where it applies.
|
| 107 |
It also works when {lhs} matches the {rhs} of a
|
| 108 |
-
mapping.
|
| 109 |
Note: Trailing spaces are included in the {lhs}.
|
| 110 |
See |map-trailing-white|.
|
| 111 |
|
|
@@ -295,7 +295,7 @@ In case you want the mapping to not do anything, you can have the expression
|
|
| 295 |
evaluate to an empty string. If something changed that requires Vim to
|
| 296 |
go through the main loop (e.g. to update the display), return "\<Ignore>".
|
| 297 |
This is similar to "nothing" but makes Vim return from the loop that waits for
|
| 298 |
-
input.
|
| 299 |
func s:OpenPopup()
|
| 300 |
call popup_create(... arguments ...)
|
| 301 |
return "\<Ignore>"
|
|
@@ -330,7 +330,7 @@ For this reason the following is blocked:
|
|
| 330 |
If you want the mapping to do any of these let the returned characters do
|
| 331 |
that, or use a |<Cmd>| mapping instead.
|
| 332 |
|
| 333 |
-
You can use getchar(), it consumes typeahead if there is any.
|
| 334 |
have these mappings: >
|
| 335 |
inoremap <expr> <C-L> nr2char(getchar())
|
| 336 |
inoremap <expr> <C-L>x "foo"
|
|
@@ -542,7 +542,7 @@ it's just used here for this situation.
|
|
| 542 |
The simplest way to load a set of related language mappings is by using the
|
| 543 |
'keymap' option. See |45.5|.
|
| 544 |
In Insert mode and in Command-line mode the mappings can be disabled with
|
| 545 |
-
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|.
|
| 546 |
the 'iminsert' option. When starting to enter a normal command line (not a
|
| 547 |
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
|
| 548 |
last used is remembered for Insert mode and Search patterns separately. The
|
|
@@ -590,7 +590,7 @@ e.g. from a timer callback. *E1309*
|
|
| 590 |
|
| 591 |
*:map-verbose*
|
| 592 |
When 'verbose' is non-zero, the detected and used 'keyprotocol' value will be
|
| 593 |
-
displayed in the first line.
|
| 594 |
last defined. Example: >
|
| 595 |
|
| 596 |
:verbose map <C-W>*
|
|
@@ -748,7 +748,7 @@ Upper and lowercase differences are ignored.
|
|
| 748 |
|
| 749 |
*map-comments*
|
| 750 |
It is not possible to put a comment after these commands, because the '"'
|
| 751 |
-
character is considered to be part of the {lhs} or {rhs}.
|
| 752 |
use |", since this starts a new, empty command with a comment.
|
| 753 |
|
| 754 |
*map_bar* *map-bar*
|
|
@@ -827,7 +827,7 @@ Multiplying a count
|
|
| 827 |
When you type a count before triggering a mapping, it's like the count was
|
| 828 |
typed before the {lhs}. For example, with this mapping: >
|
| 829 |
:map <F4> 3w
|
| 830 |
-
Typing 2<F4> will result in "23w".
|
| 831 |
If you want to multiply counts use the expression register: >
|
| 832 |
:map <F4> @='3w'<CR>
|
| 833 |
The part between quotes is the expression being executed. |@=|
|
|
@@ -960,7 +960,7 @@ configuration). For that, you can add the line: >
|
|
| 960 |
|
| 961 |
set convert-meta on
|
| 962 |
|
| 963 |
-
to your ~/.inputrc file.
|
| 964 |
|
| 965 |
$include /etc/inputrc
|
| 966 |
|
|
@@ -991,8 +991,8 @@ in Insert mode: >
|
|
| 991 |
1.12 MAPPING SUPER-KEYS or COMMAND-KEYS *:map-super-keys* *:map-cmd-key*
|
| 992 |
|
| 993 |
The Super modifier is available in GUI mode (when |gui_running| is 1) for gVim
|
| 994 |
-
on Linux and MacVim on Mac OS.
|
| 995 |
-
key, on Linux with the GTK GUI it represents the Super key.
|
| 996 |
The character "D" is used for the Super / Command modifier.
|
| 997 |
|
| 998 |
For example, to map Command-b in Insert mode: >
|
|
@@ -1244,7 +1244,7 @@ an additional rule:
|
|
| 1244 |
full-id In front of the match is a non-keyword character, or this is where
|
| 1245 |
the line or insertion starts. Exception: When the abbreviation is
|
| 1246 |
only one character, it is not recognized if there is a non-keyword
|
| 1247 |
-
character in front of it, other than a space or a tab.
|
| 1248 |
the command line "'<,'>" (or any other marks) is ignored, as if the
|
| 1249 |
command line starts after it.
|
| 1250 |
|
|
@@ -1502,8 +1502,8 @@ be the user command ":Cc2" without an argument, or the command ":Cc" with
|
|
| 1502 |
argument "2". It is advised to put a space between the command name and the
|
| 1503 |
argument to avoid these problems.
|
| 1504 |
|
| 1505 |
-
When using a user-defined command, the command can be abbreviated. However,
|
| 1506 |
-
an abbreviation is not unique, an error will be issued. Furthermore, a
|
| 1507 |
built-in command will always take precedence.
|
| 1508 |
|
| 1509 |
Example: >
|
|
@@ -1519,8 +1519,8 @@ It is recommended that full names for user-defined commands are used in
|
|
| 1519 |
scripts.
|
| 1520 |
|
| 1521 |
:com[mand] *:com* *:command*
|
| 1522 |
-
List all user-defined commands. When listing
|
| 1523 |
-
the characters in the first columns are:
|
| 1524 |
! Command has the -bang attribute
|
| 1525 |
" Command has the -register attribute
|
| 1526 |
| Command has the -bar attribute
|
|
@@ -1535,7 +1535,7 @@ scripts.
|
|
| 1535 |
|
| 1536 |
*:command-verbose*
|
| 1537 |
When 'verbose' is non-zero, listing a command will also display where it was
|
| 1538 |
-
last defined and any completion argument.
|
| 1539 |
|
| 1540 |
:verbose command TOhtml
|
| 1541 |
< Name Args Range Complete Definition ~
|
|
@@ -1571,10 +1571,10 @@ See |:verbose-cmd| for more information.
|
|
| 1571 |
|
| 1572 |
Command attributes ~
|
| 1573 |
*command-attributes*
|
| 1574 |
-
User-defined commands are treated by Vim just like any other Ex commands.
|
| 1575 |
-
can have arguments, or have a range specified. Arguments are subject to
|
| 1576 |
-
completion as filenames, buffers, etc. Exactly how this works depends upon
|
| 1577 |
-
command's attributes, which are specified when the command is defined.
|
| 1578 |
|
| 1579 |
When defining a user command in a script, it will be able to call functions
|
| 1580 |
local to the script and use mappings local to the script. When the user
|
|
@@ -1659,7 +1659,7 @@ completion can be enabled:
|
|
| 1659 |
-complete=scriptnames sourced script names
|
| 1660 |
-complete=shellcmd Shell command
|
| 1661 |
-complete=shellcmdline First is a shell command and subsequent ones
|
| 1662 |
-
are filenames.
|
| 1663 |
-complete=sign |:sign| suboptions
|
| 1664 |
-complete=syntax syntax file names 'syntax'
|
| 1665 |
-complete=syntime |:syntime| suboptions
|
|
@@ -1684,8 +1684,8 @@ function with the following signature: >
|
|
| 1684 |
|
| 1685 |
:function {func}(ArgLead, CmdLine, CursorPos)
|
| 1686 |
|
| 1687 |
-
The function need not use all these arguments.
|
| 1688 |
-
completion candidates as the return value.
|
| 1689 |
|
| 1690 |
For the "custom" argument, the function should return the completion
|
| 1691 |
candidates one per line in a newline separated string.
|
|
@@ -1701,7 +1701,7 @@ The function arguments are:
|
|
| 1701 |
The function may use these for determining context. For the "custom"
|
| 1702 |
argument, it is not necessary to filter candidates against the (implicit
|
| 1703 |
pattern in) ArgLead. Vim will filter the candidates with its regexp engine
|
| 1704 |
-
after function return, and this is probably more efficient in most cases.
|
| 1705 |
'wildoptions' contains "fuzzy", then the candidates will be filtered using
|
| 1706 |
|fuzzy-matching|. For the "customlist" argument, Vim will not
|
| 1707 |
filter the returned completion candidates and the user supplied function
|
|
@@ -1833,8 +1833,8 @@ The valid escape sequences are
|
|
| 1833 |
command was executed with a ! modifier, otherwise
|
| 1834 |
expands to nothing.
|
| 1835 |
*<mods>* *<q-mods>* *:command-modifiers*
|
| 1836 |
-
<mods> The command modifiers, if specified.
|
| 1837 |
-
nothing.
|
| 1838 |
|:botright|, |:browse|, |:confirm|, |:hide|, |:horizontal|,
|
| 1839 |
|:keepalt|, |:keepjumps|, |:keepmarks|, |:keeppatterns|,
|
| 1840 |
|:leftabove|, |:lockmarks|, |:noautocmd|, |:noswapfile|,
|
|
@@ -1943,9 +1943,9 @@ A more substantial example: >
|
|
| 1943 |
:endfunction
|
| 1944 |
:command -nargs=+ -complete=command Allargs call Allargs(<q-args>)
|
| 1945 |
|
| 1946 |
-
The command Allargs takes any Vim command(s) as argument and executes it on
|
| 1947 |
-
files in the argument list. Usage example (note use of the "e" flag to
|
| 1948 |
-
errors and the "update" command to write modified buffers): >
|
| 1949 |
:Allargs %s/foo/bar/ge|update
|
| 1950 |
This will invoke: >
|
| 1951 |
:call Allargs("%s/foo/bar/ge|update")
|
|
|
|
| 1 |
+
*map.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 105 |
map command applies. The mapping may remain defined
|
| 106 |
for other modes where it applies.
|
| 107 |
It also works when {lhs} matches the {rhs} of a
|
| 108 |
+
mapping. This is for when an abbreviation applied.
|
| 109 |
Note: Trailing spaces are included in the {lhs}.
|
| 110 |
See |map-trailing-white|.
|
| 111 |
|
|
|
|
| 295 |
evaluate to an empty string. If something changed that requires Vim to
|
| 296 |
go through the main loop (e.g. to update the display), return "\<Ignore>".
|
| 297 |
This is similar to "nothing" but makes Vim return from the loop that waits for
|
| 298 |
+
input. Example: >
|
| 299 |
func s:OpenPopup()
|
| 300 |
call popup_create(... arguments ...)
|
| 301 |
return "\<Ignore>"
|
|
|
|
| 330 |
If you want the mapping to do any of these let the returned characters do
|
| 331 |
that, or use a |<Cmd>| mapping instead.
|
| 332 |
|
| 333 |
+
You can use getchar(), it consumes typeahead if there is any. E.g., if you
|
| 334 |
have these mappings: >
|
| 335 |
inoremap <expr> <C-L> nr2char(getchar())
|
| 336 |
inoremap <expr> <C-L>x "foo"
|
|
|
|
| 542 |
The simplest way to load a set of related language mappings is by using the
|
| 543 |
'keymap' option. See |45.5|.
|
| 544 |
In Insert mode and in Command-line mode the mappings can be disabled with
|
| 545 |
+
the CTRL-^ command |i_CTRL-^| |c_CTRL-^|. These commands change the value of
|
| 546 |
the 'iminsert' option. When starting to enter a normal command line (not a
|
| 547 |
search pattern) the mappings are disabled until a CTRL-^ is typed. The state
|
| 548 |
last used is remembered for Insert mode and Search patterns separately. The
|
|
|
|
| 590 |
|
| 591 |
*:map-verbose*
|
| 592 |
When 'verbose' is non-zero, the detected and used 'keyprotocol' value will be
|
| 593 |
+
displayed in the first line. Also a key map will also display where it was
|
| 594 |
last defined. Example: >
|
| 595 |
|
| 596 |
:verbose map <C-W>*
|
|
|
|
| 748 |
|
| 749 |
*map-comments*
|
| 750 |
It is not possible to put a comment after these commands, because the '"'
|
| 751 |
+
character is considered to be part of the {lhs} or {rhs}. However, one can
|
| 752 |
use |", since this starts a new, empty command with a comment.
|
| 753 |
|
| 754 |
*map_bar* *map-bar*
|
|
|
|
| 827 |
When you type a count before triggering a mapping, it's like the count was
|
| 828 |
typed before the {lhs}. For example, with this mapping: >
|
| 829 |
:map <F4> 3w
|
| 830 |
+
Typing 2<F4> will result in "23w". Thus not moving 2 * 3 words but 23 words.
|
| 831 |
If you want to multiply counts use the expression register: >
|
| 832 |
:map <F4> @='3w'<CR>
|
| 833 |
The part between quotes is the expression being executed. |@=|
|
|
|
|
| 960 |
|
| 961 |
set convert-meta on
|
| 962 |
|
| 963 |
+
to your ~/.inputrc file. If you're creating the file, you might want to use: >
|
| 964 |
|
| 965 |
$include /etc/inputrc
|
| 966 |
|
|
|
|
| 991 |
1.12 MAPPING SUPER-KEYS or COMMAND-KEYS *:map-super-keys* *:map-cmd-key*
|
| 992 |
|
| 993 |
The Super modifier is available in GUI mode (when |gui_running| is 1) for gVim
|
| 994 |
+
on Linux and MacVim on Mac OS. If you're on a Mac, this represents the
|
| 995 |
+
Command key, on Linux with the GTK GUI it represents the Super key.
|
| 996 |
The character "D" is used for the Super / Command modifier.
|
| 997 |
|
| 998 |
For example, to map Command-b in Insert mode: >
|
|
|
|
| 1244 |
full-id In front of the match is a non-keyword character, or this is where
|
| 1245 |
the line or insertion starts. Exception: When the abbreviation is
|
| 1246 |
only one character, it is not recognized if there is a non-keyword
|
| 1247 |
+
character in front of it, other than a space or a tab. However, for
|
| 1248 |
the command line "'<,'>" (or any other marks) is ignored, as if the
|
| 1249 |
command line starts after it.
|
| 1250 |
|
|
|
|
| 1502 |
argument "2". It is advised to put a space between the command name and the
|
| 1503 |
argument to avoid these problems.
|
| 1504 |
|
| 1505 |
+
When using a user-defined command, the command can be abbreviated. However,
|
| 1506 |
+
if an abbreviation is not unique, an error will be issued. Furthermore, a
|
| 1507 |
built-in command will always take precedence.
|
| 1508 |
|
| 1509 |
Example: >
|
|
|
|
| 1519 |
scripts.
|
| 1520 |
|
| 1521 |
:com[mand] *:com* *:command*
|
| 1522 |
+
List all user-defined commands. When listing
|
| 1523 |
+
commands, the characters in the first columns are:
|
| 1524 |
! Command has the -bang attribute
|
| 1525 |
" Command has the -register attribute
|
| 1526 |
| Command has the -bar attribute
|
|
|
|
| 1535 |
|
| 1536 |
*:command-verbose*
|
| 1537 |
When 'verbose' is non-zero, listing a command will also display where it was
|
| 1538 |
+
last defined and any completion argument. Example: >
|
| 1539 |
|
| 1540 |
:verbose command TOhtml
|
| 1541 |
< Name Args Range Complete Definition ~
|
|
|
|
| 1571 |
|
| 1572 |
Command attributes ~
|
| 1573 |
*command-attributes*
|
| 1574 |
+
User-defined commands are treated by Vim just like any other Ex commands.
|
| 1575 |
+
They can have arguments, or have a range specified. Arguments are subject to
|
| 1576 |
+
completion as filenames, buffers, etc. Exactly how this works depends upon
|
| 1577 |
+
the command's attributes, which are specified when the command is defined.
|
| 1578 |
|
| 1579 |
When defining a user command in a script, it will be able to call functions
|
| 1580 |
local to the script and use mappings local to the script. When the user
|
|
|
|
| 1659 |
-complete=scriptnames sourced script names
|
| 1660 |
-complete=shellcmd Shell command
|
| 1661 |
-complete=shellcmdline First is a shell command and subsequent ones
|
| 1662 |
+
are filenames. The same behavior as |:!cmd|
|
| 1663 |
-complete=sign |:sign| suboptions
|
| 1664 |
-complete=syntax syntax file names 'syntax'
|
| 1665 |
-complete=syntime |:syntime| suboptions
|
|
|
|
| 1684 |
|
| 1685 |
:function {func}(ArgLead, CmdLine, CursorPos)
|
| 1686 |
|
| 1687 |
+
The function need not use all these arguments. The function should provide
|
| 1688 |
+
the completion candidates as the return value.
|
| 1689 |
|
| 1690 |
For the "custom" argument, the function should return the completion
|
| 1691 |
candidates one per line in a newline separated string.
|
|
|
|
| 1701 |
The function may use these for determining context. For the "custom"
|
| 1702 |
argument, it is not necessary to filter candidates against the (implicit
|
| 1703 |
pattern in) ArgLead. Vim will filter the candidates with its regexp engine
|
| 1704 |
+
after function return, and this is probably more efficient in most cases. If
|
| 1705 |
'wildoptions' contains "fuzzy", then the candidates will be filtered using
|
| 1706 |
|fuzzy-matching|. For the "customlist" argument, Vim will not
|
| 1707 |
filter the returned completion candidates and the user supplied function
|
|
|
|
| 1833 |
command was executed with a ! modifier, otherwise
|
| 1834 |
expands to nothing.
|
| 1835 |
*<mods>* *<q-mods>* *:command-modifiers*
|
| 1836 |
+
<mods> The command modifiers, if specified. Otherwise, expands to
|
| 1837 |
+
nothing. Supported modifiers are |:aboveleft|, |:belowright|,
|
| 1838 |
|:botright|, |:browse|, |:confirm|, |:hide|, |:horizontal|,
|
| 1839 |
|:keepalt|, |:keepjumps|, |:keepmarks|, |:keeppatterns|,
|
| 1840 |
|:leftabove|, |:lockmarks|, |:noautocmd|, |:noswapfile|,
|
|
|
|
| 1943 |
:endfunction
|
| 1944 |
:command -nargs=+ -complete=command Allargs call Allargs(<q-args>)
|
| 1945 |
|
| 1946 |
+
The command Allargs takes any Vim command(s) as argument and executes it on
|
| 1947 |
+
all files in the argument list. Usage example (note use of the "e" flag to
|
| 1948 |
+
ignore errors and the "update" command to write modified buffers): >
|
| 1949 |
:Allargs %s/foo/bar/ge|update
|
| 1950 |
This will invoke: >
|
| 1951 |
:call Allargs("%s/foo/bar/ge|update")
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*mbyte.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
|
@@ -1138,8 +1138,8 @@ it to the Vim maintainer for inclusion in the distribution:
|
|
| 1138 |
|
| 1139 |
HEBREW KEYMAP *keymap-hebrew*
|
| 1140 |
|
| 1141 |
-
This file explains what characters are available in UTF-8 and CP1255
|
| 1142 |
-
and what the keymaps are to get those characters:
|
| 1143 |
|
| 1144 |
glyph encoding keymap ~
|
| 1145 |
Char UTF-8 cp1255 hebrew hebrewp name ~
|
|
@@ -1270,9 +1270,9 @@ Combining forms:
|
|
| 1270 |
==============================================================================
|
| 1271 |
10. Input with imactivatefunc() *mbyte-func*
|
| 1272 |
|
| 1273 |
-
Vim has the 'imactivatefunc' and 'imstatusfunc' options.
|
| 1274 |
-
activate/deactivate the input method from Vim in any way, also with an
|
| 1275 |
-
command.
|
| 1276 |
|
| 1277 |
set iminsert=2
|
| 1278 |
set imsearch=2
|
|
|
|
| 1 |
+
*mbyte.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
|
|
|
| 1138 |
|
| 1139 |
HEBREW KEYMAP *keymap-hebrew*
|
| 1140 |
|
| 1141 |
+
This file explains what characters are available in UTF-8 and CP1255
|
| 1142 |
+
encodings, and what the keymaps are to get those characters:
|
| 1143 |
|
| 1144 |
glyph encoding keymap ~
|
| 1145 |
Char UTF-8 cp1255 hebrew hebrewp name ~
|
|
|
|
| 1270 |
==============================================================================
|
| 1271 |
10. Input with imactivatefunc() *mbyte-func*
|
| 1272 |
|
| 1273 |
+
Vim has the 'imactivatefunc' and 'imstatusfunc' options. These are useful to
|
| 1274 |
+
activate/deactivate the input method from Vim in any way, also with an
|
| 1275 |
+
external command. For example, fcitx provide fcitx-remote command: >
|
| 1276 |
|
| 1277 |
set iminsert=2
|
| 1278 |
set imsearch=2
|
|
@@ -126,7 +126,7 @@ path leading to the file.
|
|
| 126 |
Cannot switch buffer. 'winfixbuf' is enabled ~
|
| 127 |
|
| 128 |
If a window has 'winfixbuf' enabled, you cannot change that window's current
|
| 129 |
-
buffer.
|
| 130 |
force the window to switch buffers, if your command supports it.
|
| 131 |
|
| 132 |
*E72*
|
|
|
|
| 126 |
Cannot switch buffer. 'winfixbuf' is enabled ~
|
| 127 |
|
| 128 |
If a window has 'winfixbuf' enabled, you cannot change that window's current
|
| 129 |
+
buffer. You need to set 'nowinfixbuf' before continuing. You may use [!] to
|
| 130 |
force the window to switch buffers, if your command supports it.
|
| 131 |
|
| 132 |
*E72*
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*mlang.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -81,7 +81,7 @@ use of "-" and "_".
|
|
| 81 |
This sets $LC_TIME.
|
| 82 |
With the "collate" argument the language used for the
|
| 83 |
collation order is set. This affects sorting of
|
| 84 |
-
characters.
|
| 85 |
Without an argument all are set, and additionally
|
| 86 |
$LANG is set.
|
| 87 |
If available the LC_NUMERIC value will always be set
|
|
|
|
| 1 |
+
*mlang.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 81 |
This sets $LC_TIME.
|
| 82 |
With the "collate" argument the language used for the
|
| 83 |
collation order is set. This affects sorting of
|
| 84 |
+
characters. This sets $LC_COLLATE.
|
| 85 |
Without an argument all are set, and additionally
|
| 86 |
$LANG is set.
|
| 87 |
If available the LC_NUMERIC value will always be set
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*motion.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -66,7 +66,7 @@ the two counts are multiplied. For example: "2d3w" deletes six words.
|
|
| 66 |
*operator-doubled*
|
| 67 |
When doubling the operator it operates on a line. When using a count, before
|
| 68 |
or after the first character, that many lines are operated upon. Thus `3dd`
|
| 69 |
-
deletes three lines.
|
| 70 |
multiplied, thus `2y3y` yanks six lines.
|
| 71 |
*operator-resulting-pos*
|
| 72 |
After applying the operator the cursor is mostly left at the start of the text
|
|
@@ -300,11 +300,11 @@ T{char} Till after [count]'th occurrence of {char} to the
|
|
| 300 |
{char} can be entered like with the |f| command.
|
| 301 |
|
| 302 |
*;*
|
| 303 |
-
; Repeat latest f, t, F or T [count] times.
|
| 304 |
|
| 305 |
*,*
|
| 306 |
, Repeat latest f, t, F or T in opposite direction
|
| 307 |
-
[count] times.
|
| 308 |
|
| 309 |
==============================================================================
|
| 310 |
3. Up-down motions *up-down-motions*
|
|
@@ -625,11 +625,11 @@ ab "a block", select [count] blocks, from "[count] [(" to
|
|
| 625 |
|
| 626 |
i) *v_i)* *i)* *i(*
|
| 627 |
i( *vib* *v_ib* *v_i(* *ib*
|
| 628 |
-
ib "inner block", select [count] blocks, from "[count]
|
| 629 |
-
to the matching ')', excluding the '(' and ')'
|
| 630 |
-
|[(|). If the cursor is not inside a () block,
|
| 631 |
-
find the next "(". It's an error to select an
|
| 632 |
-
inner block like "()". The |cpo-M| option flag
|
| 633 |
is used to handle escaped parenthesis.
|
| 634 |
When used in Visual mode it is made characterwise.
|
| 635 |
|
|
@@ -673,11 +673,11 @@ aB "a Block", select [count] Blocks, from "[count] [{" to
|
|
| 673 |
|
| 674 |
i} *v_i}* *i}* *i{*
|
| 675 |
i{ *v_iB* *v_i{* *iB*
|
| 676 |
-
iB "inner Block", select [count] Blocks, from "[count]
|
| 677 |
-
to the matching '}', excluding the '{' and '}'
|
| 678 |
-
|[{|). It's an error to select an empty inner
|
| 679 |
-
like "{}". The |cpo-M| option flag is used to
|
| 680 |
-
escaped braces.
|
| 681 |
When used in Visual mode it is made characterwise.
|
| 682 |
|
| 683 |
a" *v_aquote* *aquote*
|
|
@@ -876,9 +876,9 @@ buffer list. If you remove the file from the buffer list, all its marks are
|
|
| 876 |
lost. If you delete a line that contains a mark, that mark is erased.
|
| 877 |
|
| 878 |
Lowercase marks can be used in combination with operators. For example: "d't"
|
| 879 |
-
deletes the lines from the cursor position to mark 't'. Hint: Use mark 't'
|
| 880 |
-
Top, 'b' for Bottom, etc.. Lowercase marks are restored when using undo
|
| 881 |
-
redo.
|
| 882 |
|
| 883 |
Uppercase marks 'A to 'Z include the file name. You can use them to jump from
|
| 884 |
file to file. You can only use an uppercase mark with an operator if the mark
|
|
@@ -1159,9 +1159,9 @@ stored in the viminfo file and restored when starting Vim.
|
|
| 1159 |
*jumplist-stack*
|
| 1160 |
When 'jumpoptions' option includes "stack", the jumplist behaves like the tag
|
| 1161 |
stack. When jumping to a new location from the middle of the jumplist, the
|
| 1162 |
-
locations after the current position will be discarded.
|
| 1163 |
-
you can move through a tree of jump locations.
|
| 1164 |
-
then down another branch, CTRL-O still takes you further up the tree.
|
| 1165 |
|
| 1166 |
Given a jumplist like the following in which CTRL-O has been used to move back
|
| 1167 |
three times to location X: >
|
|
@@ -1263,7 +1263,7 @@ remembered.
|
|
| 1263 |
|
| 1264 |
*%*
|
| 1265 |
% Find the next item in this line after or under the
|
| 1266 |
-
cursor and jump to its match.
|
| 1267 |
Items can be:
|
| 1268 |
([{}]) parenthesis or (curly/square) brackets
|
| 1269 |
(this can be changed with the
|
|
@@ -1334,13 +1334,13 @@ bring you back to the switch statement.
|
|
| 1334 |
similar structured language). When not after the
|
| 1335 |
start of a method, jump to the start or end of the
|
| 1336 |
class. When no '{' is found before the cursor this is
|
| 1337 |
-
an error.
|
| 1338 |
*[M*
|
| 1339 |
[M Go to [count] previous end of a method (for Java or
|
| 1340 |
similar structured language). When not after the
|
| 1341 |
end of a method, jump to the start or end of the
|
| 1342 |
class. When no '}' is found before the cursor this is
|
| 1343 |
-
an error.
|
| 1344 |
|
| 1345 |
The above four commands assume that the file contains a class with methods.
|
| 1346 |
The class definition is surrounded in '{' and '}'. Each method in the class
|
|
@@ -1375,7 +1375,8 @@ Using "3[m" will jump to the start of the class.
|
|
| 1375 |
|
| 1376 |
These two commands work in C programs that contain #if/#else/#endif
|
| 1377 |
constructs. It brings you to the start or end of the #if/#else/#endif where
|
| 1378 |
-
the current line is included. You can then use "%" to go to the matching
|
|
|
|
| 1379 |
|
| 1380 |
*[star* *[/*
|
| 1381 |
[* or [/ Go to [count] previous start of a C comment "/*".
|
|
|
|
| 1 |
+
*motion.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 66 |
*operator-doubled*
|
| 67 |
When doubling the operator it operates on a line. When using a count, before
|
| 68 |
or after the first character, that many lines are operated upon. Thus `3dd`
|
| 69 |
+
deletes three lines. A count before and after the first character is
|
| 70 |
multiplied, thus `2y3y` yanks six lines.
|
| 71 |
*operator-resulting-pos*
|
| 72 |
After applying the operator the cursor is mostly left at the start of the text
|
|
|
|
| 300 |
{char} can be entered like with the |f| command.
|
| 301 |
|
| 302 |
*;*
|
| 303 |
+
; Repeat latest f, t, F or T [count] times. See |cpo-;|
|
| 304 |
|
| 305 |
*,*
|
| 306 |
, Repeat latest f, t, F or T in opposite direction
|
| 307 |
+
[count] times. See also |cpo-;|
|
| 308 |
|
| 309 |
==============================================================================
|
| 310 |
3. Up-down motions *up-down-motions*
|
|
|
|
| 625 |
|
| 626 |
i) *v_i)* *i)* *i(*
|
| 627 |
i( *vib* *v_ib* *v_i(* *ib*
|
| 628 |
+
ib "inner block", select [count] blocks, from "[count]
|
| 629 |
+
[(" to the matching ')', excluding the '(' and ')'
|
| 630 |
+
(see |[(|). If the cursor is not inside a () block,
|
| 631 |
+
then find the next "(". It's an error to select an
|
| 632 |
+
empty inner block like "()". The |cpo-M| option flag
|
| 633 |
is used to handle escaped parenthesis.
|
| 634 |
When used in Visual mode it is made characterwise.
|
| 635 |
|
|
|
|
| 673 |
|
| 674 |
i} *v_i}* *i}* *i{*
|
| 675 |
i{ *v_iB* *v_i{* *iB*
|
| 676 |
+
iB "inner Block", select [count] Blocks, from "[count]
|
| 677 |
+
[{" to the matching '}', excluding the '{' and '}'
|
| 678 |
+
(see |[{|). It's an error to select an empty inner
|
| 679 |
+
block like "{}". The |cpo-M| option flag is used to
|
| 680 |
+
handle escaped braces.
|
| 681 |
When used in Visual mode it is made characterwise.
|
| 682 |
|
| 683 |
a" *v_aquote* *aquote*
|
|
|
|
| 876 |
lost. If you delete a line that contains a mark, that mark is erased.
|
| 877 |
|
| 878 |
Lowercase marks can be used in combination with operators. For example: "d't"
|
| 879 |
+
deletes the lines from the cursor position to mark 't'. Hint: Use mark 't'
|
| 880 |
+
for Top, 'b' for Bottom, etc.. Lowercase marks are restored when using undo
|
| 881 |
+
and redo.
|
| 882 |
|
| 883 |
Uppercase marks 'A to 'Z include the file name. You can use them to jump from
|
| 884 |
file to file. You can only use an uppercase mark with an operator if the mark
|
|
|
|
| 1159 |
*jumplist-stack*
|
| 1160 |
When 'jumpoptions' option includes "stack", the jumplist behaves like the tag
|
| 1161 |
stack. When jumping to a new location from the middle of the jumplist, the
|
| 1162 |
+
locations after the current position will be discarded. With this option set
|
| 1163 |
+
you can move through a tree of jump locations. When going back up a branch
|
| 1164 |
+
and then down another branch, CTRL-O still takes you further up the tree.
|
| 1165 |
|
| 1166 |
Given a jumplist like the following in which CTRL-O has been used to move back
|
| 1167 |
three times to location X: >
|
|
|
|
| 1263 |
|
| 1264 |
*%*
|
| 1265 |
% Find the next item in this line after or under the
|
| 1266 |
+
cursor and jump to its match. |inclusive| motion.
|
| 1267 |
Items can be:
|
| 1268 |
([{}]) parenthesis or (curly/square) brackets
|
| 1269 |
(this can be changed with the
|
|
|
|
| 1334 |
similar structured language). When not after the
|
| 1335 |
start of a method, jump to the start or end of the
|
| 1336 |
class. When no '{' is found before the cursor this is
|
| 1337 |
+
an error. |exclusive| motion.
|
| 1338 |
*[M*
|
| 1339 |
[M Go to [count] previous end of a method (for Java or
|
| 1340 |
similar structured language). When not after the
|
| 1341 |
end of a method, jump to the start or end of the
|
| 1342 |
class. When no '}' is found before the cursor this is
|
| 1343 |
+
an error. |exclusive| motion.
|
| 1344 |
|
| 1345 |
The above four commands assume that the file contains a class with methods.
|
| 1346 |
The class definition is surrounded in '{' and '}'. Each method in the class
|
|
|
|
| 1375 |
|
| 1376 |
These two commands work in C programs that contain #if/#else/#endif
|
| 1377 |
constructs. It brings you to the start or end of the #if/#else/#endif where
|
| 1378 |
+
the current line is included. You can then use "%" to go to the matching
|
| 1379 |
+
line.
|
| 1380 |
|
| 1381 |
*[star* *[/*
|
| 1382 |
[* or [/ Go to [count] previous start of a C comment "/*".
|
|
@@ -35,10 +35,10 @@ longer exists for recent versions of NetBeans but the protocol was developed
|
|
| 35 |
in such a way that any IDE can use it to integrate Vim.
|
| 36 |
|
| 37 |
The NetBeans protocol of Vim is a text based communication protocol, over a
|
| 38 |
-
classical TCP socket.
|
| 39 |
-
or environment providing a socket interface can control Vim using
|
| 40 |
-
protocol.
|
| 41 |
-
name NetBeans is kept today for historical reasons.
|
| 42 |
|
| 43 |
Active project using the NetBeans protocol of Vim:
|
| 44 |
- Eclim, (dead link) eclim.org/
|
|
@@ -252,7 +252,7 @@ environment variable "__NETBEANS_SOCKET" is used or the default 3219.
|
|
| 252 |
environment variable "__NETBEANS_VIM_PASSWORD" is used or "changeme".
|
| 253 |
|
| 254 |
Vim will initiate a socket connection (client side) to the specified host and
|
| 255 |
-
port upon startup.
|
| 256 |
connection has been established.
|
| 257 |
|
| 258 |
|
|
@@ -262,7 +262,7 @@ connection has been established.
|
|
| 262 |
The communication between the Vim Controller and Vim uses plain text
|
| 263 |
messages. This protocol was first designed to work with the external editor
|
| 264 |
module of NetBeans. Later it was extended to work with Agide (A-A-P GUI IDE,
|
| 265 |
-
see http://www.a-a-p.org) and then with other IDE.
|
| 266 |
with "version 2.1".
|
| 267 |
|
| 268 |
Version 2.2 of the protocol has several minor changes which should only affect
|
|
@@ -285,7 +285,7 @@ mechanism.
|
|
| 285 |
Netbeans messages are processed when Vim is idle, waiting for user input.
|
| 286 |
When Vim is run in non-interactive mode, for example when running an automated
|
| 287 |
test case that sources a Vim script, the idle loop may not be called often
|
| 288 |
-
enough.
|
| 289 |
command does invoke Netbeans messages processing.
|
| 290 |
|
| 291 |
6.1 Kinds of messages |nb-messages|
|
|
@@ -442,7 +442,7 @@ editFile pathname
|
|
| 442 |
Normal way for the IDE to tell the editor to edit a file.
|
| 443 |
|
| 444 |
You must set a bufId different of 0 with this command to
|
| 445 |
-
assign a bufId to the buffer.
|
| 446 |
fileOpened with a bufId of 0 but the buffer has been assigned.
|
| 447 |
|
| 448 |
If the IDE is going to pass the file text to the editor use
|
|
@@ -470,8 +470,8 @@ initDone Mark the buffer as ready for use. Implicitly makes the buffer
|
|
| 470 |
insertDone starteol readonly
|
| 471 |
Sent by Vim Controller to tell Vim an initial file insert is
|
| 472 |
done. This triggers a read message being printed. If
|
| 473 |
-
"starteol" is "F" then the last line doesn't have a EOL.
|
| 474 |
-
"readonly" is "T" then the file is marked as readonly.
|
| 475 |
to version 2.3, no read messages were displayed after opening
|
| 476 |
a file. New in version 2.3.
|
| 477 |
|
|
@@ -862,7 +862,7 @@ These errors occur when a message violates the protocol:
|
|
| 862 |
':echo has("netbeans_enabled")'
|
| 863 |
|
| 864 |
*:nbclose*
|
| 865 |
-
:nbc[lose] Close the current NetBeans session.
|
| 866 |
signs.
|
| 867 |
|
| 868 |
*:nbkey*
|
|
@@ -871,7 +871,7 @@ These errors occur when a message violates the protocol:
|
|
| 871 |
command, this command can be used to generate a hotkey
|
| 872 |
message to the Vim Controller.
|
| 873 |
This command can also be used to pass any text to the
|
| 874 |
-
Vim Controller.
|
| 875 |
to build the complete set of gdb commands as Vim user
|
| 876 |
commands.
|
| 877 |
The events newDotAndMark, keyCommand and keyAtPos are
|
|
@@ -885,7 +885,7 @@ NUL bytes are not possible. For editor -> IDE they will appear as NL
|
|
| 885 |
characters. For IDE -> editor they cannot be inserted.
|
| 886 |
|
| 887 |
A NetBeans session may be initiated with Vim running in a terminal, and
|
| 888 |
-
continued later in a GUI environment after running the |:gui| command.
|
| 889 |
case, the highlighting defined for the NetBeans annotations may be cleared
|
| 890 |
when the ":gui" command sources .gvimrc and this file loads a colorscheme
|
| 891 |
that runs the command ":highlight clear".
|
|
@@ -935,14 +935,14 @@ version of NetBeans.
|
|
| 935 |
|
| 936 |
10.1. Downloading NetBeans *netbeans-download*
|
| 937 |
|
| 938 |
-
The NetBeans IDE is available for download from netbeans.org. You can
|
| 939 |
-
a released version, download sources, or use CVS to download the
|
| 940 |
-
source tree. If you choose to download sources, follow directions
|
| 941 |
-
netbeans.org on building NetBeans.
|
| 942 |
|
| 943 |
Depending on the version of NetBeans you download, you may need to do further
|
| 944 |
-
work to get the required External Editor module. This is the module which
|
| 945 |
-
NetBeans work with gvim (or xemacs :-). See (dead link)
|
| 946 |
externaleditor.netbeans.org
|
| 947 |
for details on downloading this module if your NetBeans release does not have
|
| 948 |
it.
|
|
|
|
| 35 |
in such a way that any IDE can use it to integrate Vim.
|
| 36 |
|
| 37 |
The NetBeans protocol of Vim is a text based communication protocol, over a
|
| 38 |
+
classical TCP socket. There is no dependency on Java or NetBeans. Any
|
| 39 |
+
language or environment providing a socket interface can control Vim using
|
| 40 |
+
this protocol. There are existing implementations in C, C++, Python and Java.
|
| 41 |
+
The name NetBeans is kept today for historical reasons.
|
| 42 |
|
| 43 |
Active project using the NetBeans protocol of Vim:
|
| 44 |
- Eclim, (dead link) eclim.org/
|
|
|
|
| 252 |
environment variable "__NETBEANS_VIM_PASSWORD" is used or "changeme".
|
| 253 |
|
| 254 |
Vim will initiate a socket connection (client side) to the specified host and
|
| 255 |
+
port upon startup. The password will be sent with the AUTH event when the
|
| 256 |
connection has been established.
|
| 257 |
|
| 258 |
|
|
|
|
| 262 |
The communication between the Vim Controller and Vim uses plain text
|
| 263 |
messages. This protocol was first designed to work with the external editor
|
| 264 |
module of NetBeans. Later it was extended to work with Agide (A-A-P GUI IDE,
|
| 265 |
+
see http://www.a-a-p.org) and then with other IDE. The extensions are marked
|
| 266 |
with "version 2.1".
|
| 267 |
|
| 268 |
Version 2.2 of the protocol has several minor changes which should only affect
|
|
|
|
| 285 |
Netbeans messages are processed when Vim is idle, waiting for user input.
|
| 286 |
When Vim is run in non-interactive mode, for example when running an automated
|
| 287 |
test case that sources a Vim script, the idle loop may not be called often
|
| 288 |
+
enough. In that case, insert |:sleep| commands in the Vim script. The |:sleep|
|
| 289 |
command does invoke Netbeans messages processing.
|
| 290 |
|
| 291 |
6.1 Kinds of messages |nb-messages|
|
|
|
|
| 442 |
Normal way for the IDE to tell the editor to edit a file.
|
| 443 |
|
| 444 |
You must set a bufId different of 0 with this command to
|
| 445 |
+
assign a bufId to the buffer. It will trigger an event
|
| 446 |
fileOpened with a bufId of 0 but the buffer has been assigned.
|
| 447 |
|
| 448 |
If the IDE is going to pass the file text to the editor use
|
|
|
|
| 470 |
insertDone starteol readonly
|
| 471 |
Sent by Vim Controller to tell Vim an initial file insert is
|
| 472 |
done. This triggers a read message being printed. If
|
| 473 |
+
"starteol" is "F" then the last line doesn't have a EOL. If
|
| 474 |
+
"readonly" is "T" then the file is marked as readonly. Prior
|
| 475 |
to version 2.3, no read messages were displayed after opening
|
| 476 |
a file. New in version 2.3.
|
| 477 |
|
|
|
|
| 862 |
':echo has("netbeans_enabled")'
|
| 863 |
|
| 864 |
*:nbclose*
|
| 865 |
+
:nbc[lose] Close the current NetBeans session. Remove all placed
|
| 866 |
signs.
|
| 867 |
|
| 868 |
*:nbkey*
|
|
|
|
| 871 |
command, this command can be used to generate a hotkey
|
| 872 |
message to the Vim Controller.
|
| 873 |
This command can also be used to pass any text to the
|
| 874 |
+
Vim Controller. It is used by Pyclewn, for example,
|
| 875 |
to build the complete set of gdb commands as Vim user
|
| 876 |
commands.
|
| 877 |
The events newDotAndMark, keyCommand and keyAtPos are
|
|
|
|
| 885 |
characters. For IDE -> editor they cannot be inserted.
|
| 886 |
|
| 887 |
A NetBeans session may be initiated with Vim running in a terminal, and
|
| 888 |
+
continued later in a GUI environment after running the |:gui| command. In this
|
| 889 |
case, the highlighting defined for the NetBeans annotations may be cleared
|
| 890 |
when the ":gui" command sources .gvimrc and this file loads a colorscheme
|
| 891 |
that runs the command ":highlight clear".
|
|
|
|
| 935 |
|
| 936 |
10.1. Downloading NetBeans *netbeans-download*
|
| 937 |
|
| 938 |
+
The NetBeans IDE is available for download from netbeans.org. You can
|
| 939 |
+
download a released version, download sources, or use CVS to download the
|
| 940 |
+
current source tree. If you choose to download sources, follow directions
|
| 941 |
+
from netbeans.org on building NetBeans.
|
| 942 |
|
| 943 |
Depending on the version of NetBeans you download, you may need to do further
|
| 944 |
+
work to get the required External Editor module. This is the module which
|
| 945 |
+
lets NetBeans work with gvim (or xemacs :-). See (dead link)
|
| 946 |
externaleditor.netbeans.org
|
| 947 |
for details on downloading this module if your NetBeans release does not have
|
| 948 |
it.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*options.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -32,8 +32,8 @@ achieve special effects. These options come in three forms:
|
|
| 32 |
|
| 33 |
:se[t] termcap Show all terminal options. Note that in the GUI the
|
| 34 |
key codes are not shown, because they are generated
|
| 35 |
-
internally and can't be changed. Changing the
|
| 36 |
-
codes in the GUI is not useful either...
|
| 37 |
The options have the form t_AB, see
|
| 38 |
|terminal-options|.
|
| 39 |
|
|
@@ -1493,8 +1493,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 1493 |
{not available when compiled without the |+linebreak|
|
| 1494 |
feature}
|
| 1495 |
Every wrapped line will continue visually indented (same amount of
|
| 1496 |
-
space as the beginning of that line), thus preserving horizontal
|
| 1497 |
-
of text.
|
| 1498 |
NOTE: This option is reset when 'compatible' is set.
|
| 1499 |
|
| 1500 |
*'breakindentopt'* *'briopt'*
|
|
@@ -1839,13 +1839,14 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 1839 |
register '*' for all yank, delete, change and put
|
| 1840 |
operations which would normally go to the unnamed
|
| 1841 |
register. When "unnamed" is also included to the
|
| 1842 |
-
option, yank operations (but not delete, change or
|
| 1843 |
-
will additionally copy the text into register
|
| 1844 |
-
Wayland is being used and the compositor does
|
| 1845 |
-
support the primary-selection-unstable-v1
|
| 1846 |
-
then the regular selection is used in its
|
| 1847 |
-
available with the |+X11| or
|
| 1848 |
-
feature. Availability can be
|
|
|
|
| 1849 |
if has('unnamedplus')
|
| 1850 |
<
|
| 1851 |
*clipboard-autoselect*
|
|
@@ -2147,12 +2148,12 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 2147 |
|i_CTRL-X_CTRL-D|
|
| 2148 |
] tag completion
|
| 2149 |
t same as "]"
|
| 2150 |
-
F{func} call the function {func}. Multiple "F" flags may be
|
| 2151 |
-
Refer to |complete-functions| for details on how
|
| 2152 |
-
is invoked and what it should return. The value
|
| 2153 |
-
name of a function or a |Funcref|. For |Funcref|
|
| 2154 |
-
spaces must be escaped with a backslash ('\'), and
|
| 2155 |
-
double backslashes ('\\') (see |option-backslash|).
|
| 2156 |
Unlike other sources, functions can provide completions
|
| 2157 |
starting from a non-keyword character before the cursor, and
|
| 2158 |
their start position for replacing text may differ from other
|
|
@@ -2354,7 +2355,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 2354 |
completion in insert mode. This is useful when editing HTML tag, or
|
| 2355 |
Makefile with 'noshellslash' on MS-Windows.
|
| 2356 |
- When this option is set to "backslash", backslash is used. This is
|
| 2357 |
-
useful when editing a batch file with 'shellslash' set on
|
|
|
|
| 2358 |
- When this option is empty, same character is used as for
|
| 2359 |
'shellslash'.
|
| 2360 |
For Insert mode completion the buffer-local value is used. For
|
|
@@ -5575,8 +5577,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 5575 |
global
|
| 5576 |
{only available when compiled with the |+langmap|
|
| 5577 |
feature}
|
| 5578 |
-
When off, setting 'langmap' does not apply to characters resulting
|
| 5579 |
-
a mapping. This basically means, if you noticed that setting
|
| 5580 |
'langmap' disables some of your mappings, try resetting this option.
|
| 5581 |
This option defaults to on for backwards compatibility. Set it off if
|
| 5582 |
that works for you to avoid mappings to break.
|
|
@@ -5599,8 +5601,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 5599 |
executing macros, registers and other commands that have not been
|
| 5600 |
typed. Also, updating the window title is postponed. To force an
|
| 5601 |
update use |:redraw|.
|
| 5602 |
-
This may occasionally cause display errors. It is only meant to be
|
| 5603 |
-
temporarily when performing an operation where redrawing may cause
|
| 5604 |
flickering or cause a slowdown.
|
| 5605 |
|
| 5606 |
*'lhistory'* *'lhi'*
|
|
@@ -6517,10 +6519,10 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 6517 |
some text from one window and paste it in Vim. This will avoid
|
| 6518 |
unexpected effects.
|
| 6519 |
Setting this option is useful when using Vim in a terminal, where Vim
|
| 6520 |
-
cannot distinguish between typed text and pasted text. In the GUI,
|
| 6521 |
-
knows about pasting and will mostly do the right thing without
|
| 6522 |
-
being set. The same is true for a terminal where Vim handles
|
| 6523 |
-
mouse clicks itself.
|
| 6524 |
This option is reset when starting the GUI. Thus if you set it in
|
| 6525 |
your .vimrc it will work in a terminal, but not in the GUI. Setting
|
| 6526 |
'paste' in the GUI has side effects: e.g., the Paste toolbar button
|
|
@@ -6566,8 +6568,8 @@ A jump table for the options with a short description can be found at |Q_op|.
|
|
| 6566 |
'pastetoggle' works in Insert mode and Normal mode, but not in
|
| 6567 |
Command-line mode.
|
| 6568 |
Mappings are checked first, thus overrule 'pastetoggle'. However,
|
| 6569 |
-
when 'paste' is on mappings are ignored in Insert mode, thus you can
|
| 6570 |
-
this: >
|
| 6571 |
:map <F10> :set paste<CR>
|
| 6572 |
:map <F11> :set nopaste<CR>
|
| 6573 |
:imap <F10> <C-O>:set paste<CR>
|
|
|
|
| 1 |
+
*options.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 32 |
|
| 33 |
:se[t] termcap Show all terminal options. Note that in the GUI the
|
| 34 |
key codes are not shown, because they are generated
|
| 35 |
+
internally and can't be changed. Changing the
|
| 36 |
+
terminal codes in the GUI is not useful either...
|
| 37 |
The options have the form t_AB, see
|
| 38 |
|terminal-options|.
|
| 39 |
|
|
|
|
| 1493 |
{not available when compiled without the |+linebreak|
|
| 1494 |
feature}
|
| 1495 |
Every wrapped line will continue visually indented (same amount of
|
| 1496 |
+
space as the beginning of that line), thus preserving horizontal
|
| 1497 |
+
blocks of text.
|
| 1498 |
NOTE: This option is reset when 'compatible' is set.
|
| 1499 |
|
| 1500 |
*'breakindentopt'* *'briopt'*
|
|
|
|
| 1839 |
register '*' for all yank, delete, change and put
|
| 1840 |
operations which would normally go to the unnamed
|
| 1841 |
register. When "unnamed" is also included to the
|
| 1842 |
+
option, yank operations (but not delete, change or
|
| 1843 |
+
put) will additionally copy the text into register
|
| 1844 |
+
'*'. If Wayland is being used and the compositor does
|
| 1845 |
+
not support the primary-selection-unstable-v1
|
| 1846 |
+
protocol, then the regular selection is used in its
|
| 1847 |
+
place. Only available with the |+X11| or
|
| 1848 |
+
|+wayland_clipboard| feature. Availability can be
|
| 1849 |
+
checked with: >
|
| 1850 |
if has('unnamedplus')
|
| 1851 |
<
|
| 1852 |
*clipboard-autoselect*
|
|
|
|
| 2148 |
|i_CTRL-X_CTRL-D|
|
| 2149 |
] tag completion
|
| 2150 |
t same as "]"
|
| 2151 |
+
F{func} call the function {func}. Multiple "F" flags may be
|
| 2152 |
+
specified. Refer to |complete-functions| for details on how
|
| 2153 |
+
the function is invoked and what it should return. The value
|
| 2154 |
+
can be the name of a function or a |Funcref|. For |Funcref|
|
| 2155 |
+
values, spaces must be escaped with a backslash ('\'), and
|
| 2156 |
+
commas with double backslashes ('\\') (see |option-backslash|).
|
| 2157 |
Unlike other sources, functions can provide completions
|
| 2158 |
starting from a non-keyword character before the cursor, and
|
| 2159 |
their start position for replacing text may differ from other
|
|
|
|
| 2355 |
completion in insert mode. This is useful when editing HTML tag, or
|
| 2356 |
Makefile with 'noshellslash' on MS-Windows.
|
| 2357 |
- When this option is set to "backslash", backslash is used. This is
|
| 2358 |
+
useful when editing a batch file with 'shellslash' set on
|
| 2359 |
+
MS-Windows.
|
| 2360 |
- When this option is empty, same character is used as for
|
| 2361 |
'shellslash'.
|
| 2362 |
For Insert mode completion the buffer-local value is used. For
|
|
|
|
| 5577 |
global
|
| 5578 |
{only available when compiled with the |+langmap|
|
| 5579 |
feature}
|
| 5580 |
+
When off, setting 'langmap' does not apply to characters resulting
|
| 5581 |
+
from a mapping. This basically means, if you noticed that setting
|
| 5582 |
'langmap' disables some of your mappings, try resetting this option.
|
| 5583 |
This option defaults to on for backwards compatibility. Set it off if
|
| 5584 |
that works for you to avoid mappings to break.
|
|
|
|
| 5601 |
executing macros, registers and other commands that have not been
|
| 5602 |
typed. Also, updating the window title is postponed. To force an
|
| 5603 |
update use |:redraw|.
|
| 5604 |
+
This may occasionally cause display errors. It is only meant to be
|
| 5605 |
+
set temporarily when performing an operation where redrawing may cause
|
| 5606 |
flickering or cause a slowdown.
|
| 5607 |
|
| 5608 |
*'lhistory'* *'lhi'*
|
|
|
|
| 6519 |
some text from one window and paste it in Vim. This will avoid
|
| 6520 |
unexpected effects.
|
| 6521 |
Setting this option is useful when using Vim in a terminal, where Vim
|
| 6522 |
+
cannot distinguish between typed text and pasted text. In the GUI,
|
| 6523 |
+
Vim knows about pasting and will mostly do the right thing without
|
| 6524 |
+
'paste' being set. The same is true for a terminal where Vim handles
|
| 6525 |
+
the mouse clicks itself.
|
| 6526 |
This option is reset when starting the GUI. Thus if you set it in
|
| 6527 |
your .vimrc it will work in a terminal, but not in the GUI. Setting
|
| 6528 |
'paste' in the GUI has side effects: e.g., the Paste toolbar button
|
|
|
|
| 6568 |
'pastetoggle' works in Insert mode and Normal mode, but not in
|
| 6569 |
Command-line mode.
|
| 6570 |
Mappings are checked first, thus overrule 'pastetoggle'. However,
|
| 6571 |
+
when 'paste' is on mappings are ignored in Insert mode, thus you can
|
| 6572 |
+
do this: >
|
| 6573 |
:map <F10> :set paste<CR>
|
| 6574 |
:map <F11> :set nopaste<CR>
|
| 6575 |
:imap <F10> <C-O>:set paste<CR>
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_amiga.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -74,8 +74,8 @@ example to get white text on a blue background: >
|
|
| 74 |
|
| 75 |
When using multiple commands with a filter command, e.g. >
|
| 76 |
:r! echo this; echo that
|
| 77 |
-
Only the output of the last command is used. To fix this you have to group
|
| 78 |
-
commands. This depends on the shell you use (that is why it is not done
|
| 79 |
automatically in Vim). Examples: >
|
| 80 |
:r! (echo this; echo that)
|
| 81 |
:r! {echo this; echo that}
|
|
|
|
| 1 |
+
*os_amiga.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 74 |
|
| 75 |
When using multiple commands with a filter command, e.g. >
|
| 76 |
:r! echo this; echo that
|
| 77 |
+
Only the output of the last command is used. To fix this you have to group
|
| 78 |
+
the commands. This depends on the shell you use (that is why it is not done
|
| 79 |
automatically in Vim). Examples: >
|
| 80 |
:r! (echo this; echo that)
|
| 81 |
:r! {echo this; echo that}
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_haiku.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -40,7 +40,7 @@ instance (r,g,b)=(168,168,168)) with black letters also works nicely.
|
|
| 40 |
|
| 41 |
2. Compiling Vim *haiku-compiling*
|
| 42 |
|
| 43 |
-
Vim can be compiled using the standard configure/make approach.
|
| 44 |
./configure without any arguments or passing --enable-gui=haiku, will compile
|
| 45 |
vim with the Haiku GUI support. Run ./configure --help , to find out other
|
| 46 |
features you can enable/disable.
|
|
@@ -73,8 +73,8 @@ additionally installed over the GUI version. Typical build commands are:
|
|
| 73 |
|
| 74 |
Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim
|
| 75 |
version with GUI tries to determine if it was started from the Tracker instead
|
| 76 |
-
of the Terminal, and if so, uses the GUI anyway. However, the current
|
| 77 |
-
scheme is fooled if you use the command "vim - </dev/null".
|
| 78 |
|
| 79 |
Toggling between normal managed window and fullscreen mode can be done by
|
| 80 |
pressing <Alt-Enter>.
|
|
@@ -90,7 +90,7 @@ Stuff that does not work yet:
|
|
| 90 |
follows-mouse turned on).
|
| 91 |
- The cursor does not flash.
|
| 92 |
- Switching windows using <C-Tab-Up> and <C-Tab-Down> in Twitcher does not
|
| 93 |
-
work.
|
| 94 |
completely unaware of other vim processes.
|
| 95 |
|
| 96 |
4. The $VIM directory *haiku-vimdir*
|
|
@@ -141,7 +141,7 @@ open the files instead. This works from the Tracker but also from the command
|
|
| 141 |
line. In the latter case, non-file (option) arguments are not supported.
|
| 142 |
Another drawback of the Single Launch is silent ignore of "Open With ..."
|
| 143 |
requests by vim instance that running as non-GUI application even GUI support
|
| 144 |
-
was compiled in.
|
| 145 |
|
| 146 |
NB: Only the GUI version has a BApplication (and hence Application Flags).
|
| 147 |
This section does not apply to the GUI-less version, should you compile one.
|
|
@@ -201,14 +201,14 @@ $VIM/macros/swapmous.vim for an example. |gui-mouse-mapping|
|
|
| 201 |
|
| 202 |
11. Color names *haiku-colors*
|
| 203 |
|
| 204 |
-
Vim has a number of color names built-in.
|
| 205 |
-
|v:colornames|.
|
| 206 |
|
| 207 |
|
| 208 |
12. GUI Toolbar Images *haiku-toolbar-images*
|
| 209 |
|
| 210 |
Alternative set of toolbar images should be the PNG image of any height you
|
| 211 |
-
like.
|
| 212 |
cells.
|
| 213 |
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
|
| 214 |
More info about the buttons assignment are at |builtin-tools|.
|
|
@@ -229,8 +229,8 @@ Thank you, all!
|
|
| 229 |
|
| 230 |
14. Bugs & to-do *haiku-bugs*
|
| 231 |
|
| 232 |
-
The port is under development now and far away from the perfect state.
|
| 233 |
-
reports, patches and wishes, please use the Vim mailing list or Vim Github
|
| 234 |
repository.
|
| 235 |
|
| 236 |
Mailing list: https://www.vim.org/maillist.php
|
|
|
|
| 1 |
+
*os_haiku.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 40 |
|
| 41 |
2. Compiling Vim *haiku-compiling*
|
| 42 |
|
| 43 |
+
Vim can be compiled using the standard configure/make approach. Running
|
| 44 |
./configure without any arguments or passing --enable-gui=haiku, will compile
|
| 45 |
vim with the Haiku GUI support. Run ./configure --help , to find out other
|
| 46 |
features you can enable/disable.
|
|
|
|
| 73 |
|
| 74 |
Normally Vim starts with the GUI if you start it as gvim or vim -g. The vim
|
| 75 |
version with GUI tries to determine if it was started from the Tracker instead
|
| 76 |
+
of the Terminal, and if so, uses the GUI anyway. However, the current
|
| 77 |
+
detection scheme is fooled if you use the command "vim - </dev/null".
|
| 78 |
|
| 79 |
Toggling between normal managed window and fullscreen mode can be done by
|
| 80 |
pressing <Alt-Enter>.
|
|
|
|
| 90 |
follows-mouse turned on).
|
| 91 |
- The cursor does not flash.
|
| 92 |
- Switching windows using <C-Tab-Up> and <C-Tab-Down> in Twitcher does not
|
| 93 |
+
work. This is due to each gvim window being managed by a separate instance
|
| 94 |
completely unaware of other vim processes.
|
| 95 |
|
| 96 |
4. The $VIM directory *haiku-vimdir*
|
|
|
|
| 141 |
line. In the latter case, non-file (option) arguments are not supported.
|
| 142 |
Another drawback of the Single Launch is silent ignore of "Open With ..."
|
| 143 |
requests by vim instance that running as non-GUI application even GUI support
|
| 144 |
+
was compiled in. Vim instance running with GUI has no such problems.
|
| 145 |
|
| 146 |
NB: Only the GUI version has a BApplication (and hence Application Flags).
|
| 147 |
This section does not apply to the GUI-less version, should you compile one.
|
|
|
|
| 201 |
|
| 202 |
11. Color names *haiku-colors*
|
| 203 |
|
| 204 |
+
Vim has a number of color names built-in. Additional names can be defined in
|
| 205 |
+
|v:colornames|. See |:colorscheme| for details.
|
| 206 |
|
| 207 |
|
| 208 |
12. GUI Toolbar Images *haiku-toolbar-images*
|
| 209 |
|
| 210 |
Alternative set of toolbar images should be the PNG image of any height you
|
| 211 |
+
like. Image width is calculated to contain at least 32 buttons in one-row
|
| 212 |
cells.
|
| 213 |
The image should be stored under the name $VIRUNTIME/bitmaps/builtin-tools.png
|
| 214 |
More info about the buttons assignment are at |builtin-tools|.
|
|
|
|
| 229 |
|
| 230 |
14. Bugs & to-do *haiku-bugs*
|
| 231 |
|
| 232 |
+
The port is under development now and far away from the perfect state. For
|
| 233 |
+
bug reports, patches and wishes, please use the Vim mailing list or Vim Github
|
| 234 |
repository.
|
| 235 |
|
| 236 |
Mailing list: https://www.vim.org/maillist.php
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_mac.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
|
@@ -36,7 +36,7 @@ Indianapolis IN 46220 USA
|
|
| 36 |
1. Filename Convention *mac-filename*
|
| 37 |
|
| 38 |
Starting with Vim version 7 you can just use the unix path separators with
|
| 39 |
-
Vim.
|
| 40 |
current folder or absolute (i.e. relative to the "Desktop"), the following
|
| 41 |
algorithm is used:
|
| 42 |
|
|
|
|
| 1 |
+
*os_mac.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar et al.
|
|
|
|
| 36 |
1. Filename Convention *mac-filename*
|
| 37 |
|
| 38 |
Starting with Vim version 7 you can just use the unix path separators with
|
| 39 |
+
Vim. In order to determine if the specified filename is relative to the
|
| 40 |
current folder or absolute (i.e. relative to the "Desktop"), the following
|
| 41 |
algorithm is used:
|
| 42 |
|
|
@@ -1,11 +1,11 @@
|
|
| 1 |
-
*os_mint.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Jens M. Felderhoff
|
| 5 |
|
| 6 |
|
| 7 |
*MiNT* *Atari*
|
| 8 |
-
The Atari MiNT support was removed with patch 8.2.1215.
|
| 9 |
work at that time, since the code was old and not maintained.
|
| 10 |
|
| 11 |
|
|
|
|
| 1 |
+
*os_mint.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Jens M. Felderhoff
|
| 5 |
|
| 6 |
|
| 7 |
*MiNT* *Atari*
|
| 8 |
+
The Atari MiNT support was removed with patch 8.2.1215. It probably didn't
|
| 9 |
work at that time, since the code was old and not maintained.
|
| 10 |
|
| 11 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_qnx.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Julian Kinraid
|
|
@@ -22,8 +22,8 @@ Vim on QNX behaves much like other unix versions. |os_unix.txt|
|
|
| 22 |
|
| 23 |
2. Compiling Vim *qnx-compiling*
|
| 24 |
|
| 25 |
-
Vim can be compiled using the standard configure/make approach. If you want
|
| 26 |
-
compile for X11, pass the --with-x option to configure. Otherwise, running
|
| 27 |
./configure without any arguments or passing --enable-gui=photon, will compile
|
| 28 |
vim with the Photon gui support. Run ./configure --help , to find out other
|
| 29 |
features you can enable/disable.
|
|
|
|
| 1 |
+
*os_qnx.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Julian Kinraid
|
|
|
|
| 22 |
|
| 23 |
2. Compiling Vim *qnx-compiling*
|
| 24 |
|
| 25 |
+
Vim can be compiled using the standard configure/make approach. If you want
|
| 26 |
+
to compile for X11, pass the --with-x option to configure. Otherwise, running
|
| 27 |
./configure without any arguments or passing --enable-gui=photon, will compile
|
| 28 |
vim with the Photon gui support. Run ./configure --help , to find out other
|
| 29 |
features you can enable/disable.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_vms.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL
|
|
@@ -80,9 +80,9 @@ See the file [.SRC]INSTALLVMS.TXT.
|
|
| 80 |
4. Problems *vms-problems*
|
| 81 |
|
| 82 |
The code has been tested under Open VMS 6.2 - 9.2 on Alpha, VAX, IA64 and
|
| 83 |
-
X86_64 platforms with the DEC C compiler.
|
| 84 |
-
If your system does not have some include libraries you can tune in
|
| 85 |
-
OS_VMS_CONF.H file.
|
| 86 |
|
| 87 |
If you decided to build Vim with +perl, +python, etc. options, first you need
|
| 88 |
to download OpenVMS distributions of Perl and Python. Build and deploy the
|
|
@@ -96,7 +96,8 @@ VAX C compiler is not fully ANSI C compatible in pre-processor directives
|
|
| 96 |
semantics, therefore you have to use a converter program that will do the lion
|
| 97 |
part of the job. For detailed instructions read file INSTALLvms.txt
|
| 98 |
|
| 99 |
-
To build XXD.EXE, you should change to the subdirectory and build it
|
|
|
|
| 100 |
|
| 101 |
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
|
| 102 |
specific source might contain CTAGS source files as described above.
|
|
@@ -216,8 +217,8 @@ Example LOGIN.COM: >
|
|
| 216 |
$ set term/inq/ins ! inquire the terminal capabilities
|
| 217 |
$ set disp/create/node=192.168.10.202/trans=tcpip
|
| 218 |
|
| 219 |
-
Note: This set-up should be enough, if you are working on a standalone server
|
| 220 |
-
clustered environment, but if you want to use Vim as an internode editor in
|
| 221 |
DECNET environment, it will satisfy as well.
|
| 222 |
You just have to define the "whole" path: >
|
| 223 |
|
|
@@ -291,8 +292,8 @@ can be downloaded from http://www.polarhome.com/vim/).
|
|
| 291 |
|
| 292 |
$ set disp/create/node=<your IP address>/trans=<transport-name>
|
| 293 |
<
|
| 294 |
-
and start Vim as in point 1. You can find more help in VMS documentation
|
| 295 |
-
type: help set disp in VMS prompt.
|
| 296 |
Examples: >
|
| 297 |
|
| 298 |
$ set disp/create/node=192.168.5.159 ! default trans is DECnet
|
|
@@ -456,7 +457,8 @@ Try to force to inquire the terminal capabilities with: >
|
|
| 456 |
|
| 457 |
$ set term/inquire
|
| 458 |
|
| 459 |
-
If the inquire did not help, the solutions is to define the default terminal
|
|
|
|
| 460 |
|
| 461 |
$ ! unknown terminal name. Let us use vt320 or ansi instead.
|
| 462 |
$ ! Note: it's case sensitive
|
|
@@ -487,9 +489,9 @@ special commands to execute executables: >
|
|
| 487 |
|
| 488 |
OpenVMS users always have to be aware that the Vim command :! "just" drop them
|
| 489 |
to DCL prompt. This feature is possible to use without any problem with all
|
| 490 |
-
DCL commands, but if we want to execute some programs such as XXD, CTAGS,
|
| 491 |
-
etc. we're running into trouble if we follow the Vim documentation
|
| 492 |
-
xxd).
|
| 493 |
|
| 494 |
Solution: Execute with the MC command and add the full path to the executable.
|
| 495 |
Example: Instead of :%!xxd command use: >
|
|
@@ -707,7 +709,7 @@ console mode can avoid performance problems.
|
|
| 707 |
In a cluster that contains nodes with different architectures like below:
|
| 708 |
|
| 709 |
$show cluster
|
| 710 |
-
View of Cluster from system ID 11655 node: TOR
|
| 711 |
+---------------------------------+
|
| 712 |
| SYSTEMS | MEMBERS |
|
| 713 |
+-----------------------+---------|
|
|
@@ -773,17 +775,20 @@ GNU_TOOLS.ZIP package downloadable from http://www.polarhome.com/vim/
|
|
| 773 |
|
| 774 |
Version 9.0 (2023 Nov 27)
|
| 775 |
- Vim is ported to the X86_64 architecture
|
| 776 |
-
- IMPORTANT: because of the getline function name used in structs like
|
| 777 |
-
on X86_64 the CRTL_VER is kept under 80500000 level. The
|
| 778 |
-
to rename the getline function to something
|
| 779 |
-
|
| 780 |
-
|
| 781 |
-
|
|
|
|
|
|
|
| 782 |
- os_vms_conf.h includes have been reviewed for all architectures
|
| 783 |
- added support for the MODIFIED_BY define
|
| 784 |
|
| 785 |
Version 8.2 (2020 Feb 6)
|
| 786 |
-
- make all changes needed for clean compile build of v8.2 on VMS on all
|
|
|
|
| 787 |
- fix the call mkdir bug (vicente_polo@yahoo.es)
|
| 788 |
- test on VSI OpenVMS Alpha and Itanium platforms
|
| 789 |
- added LUA support
|
|
@@ -797,21 +802,23 @@ Version 8.1 (2019 Jan 9)
|
|
| 797 |
|
| 798 |
Version 8.0 (2016 Nov 21)
|
| 799 |
- solve the 100% cpu usage issue while waiting for a keystroke
|
| 800 |
-
- correct the VMS warnings and errors around handling the INFINITY (used in
|
|
|
|
| 801 |
- minor VMS port related changes
|
| 802 |
- correct the make_vms.mms file for 8.0
|
| 803 |
- fix [.TESTDIR]make_vms.mms for 8.0
|
| 804 |
|
| 805 |
Version 7.4 (2013 Aug 10)
|
| 806 |
-
- Undo: VMS can not handle more than one dot in the filenames use
|
|
|
|
| 807 |
add _un_ at the beginning to keep the extension
|
| 808 |
- correct swap file name wildcard handling
|
| 809 |
- handle iconv usage correctly
|
| 810 |
- do not optimize on vax - otherwise it hangs compiling crypto files
|
| 811 |
- fileio.c fix the comment
|
| 812 |
- correct RealWaitForChar
|
| 813 |
-
- after 7.4-119 use different functions lib$cvtf_to_internal_time because
|
| 814 |
-
G_FLOAT but IA64 uses IEEE float otherwise Vim crashes
|
| 815 |
- guard against crashes that are caused by mixed filenames
|
| 816 |
- [TESTDIR]make_vms.mms changed to see the output files
|
| 817 |
- Improve tests, update known issues
|
|
@@ -820,7 +827,8 @@ Version 7.4 (2013 Aug 10)
|
|
| 820 |
|
| 821 |
Version 7.3 (2010 Aug 15)
|
| 822 |
- CTAGS 5.8 included
|
| 823 |
-
- VMS compile warnings fixed - floating-point overflow warning corrected on
|
|
|
|
| 824 |
- filepath completion corrected - too many chars were escaped in filename
|
| 825 |
and shell commands
|
| 826 |
- the following plugins are included into VMS runtime:
|
|
|
|
| 1 |
+
*os_vms.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL
|
|
|
|
| 80 |
4. Problems *vms-problems*
|
| 81 |
|
| 82 |
The code has been tested under Open VMS 6.2 - 9.2 on Alpha, VAX, IA64 and
|
| 83 |
+
X86_64 platforms with the DEC C compiler. It should work without major
|
| 84 |
+
problems. If your system does not have some include libraries you can tune in
|
| 85 |
+
the OS_VMS_CONF.H file.
|
| 86 |
|
| 87 |
If you decided to build Vim with +perl, +python, etc. options, first you need
|
| 88 |
to download OpenVMS distributions of Perl and Python. Build and deploy the
|
|
|
|
| 96 |
semantics, therefore you have to use a converter program that will do the lion
|
| 97 |
part of the job. For detailed instructions read file INSTALLvms.txt
|
| 98 |
|
| 99 |
+
To build XXD.EXE, you should change to the subdirectory and build it
|
| 100 |
+
separately.
|
| 101 |
|
| 102 |
CTAGS is not part of the Vim source distribution anymore, however the OpenVMS
|
| 103 |
specific source might contain CTAGS source files as described above.
|
|
|
|
| 217 |
$ set term/inq/ins ! inquire the terminal capabilities
|
| 218 |
$ set disp/create/node=192.168.10.202/trans=tcpip
|
| 219 |
|
| 220 |
+
Note: This set-up should be enough, if you are working on a standalone server
|
| 221 |
+
or clustered environment, but if you want to use Vim as an internode editor in
|
| 222 |
DECNET environment, it will satisfy as well.
|
| 223 |
You just have to define the "whole" path: >
|
| 224 |
|
|
|
|
| 292 |
|
| 293 |
$ set disp/create/node=<your IP address>/trans=<transport-name>
|
| 294 |
<
|
| 295 |
+
and start Vim as in point 1. You can find more help in VMS documentation
|
| 296 |
+
or type: help set disp in VMS prompt.
|
| 297 |
Examples: >
|
| 298 |
|
| 299 |
$ set disp/create/node=192.168.5.159 ! default trans is DECnet
|
|
|
|
| 457 |
|
| 458 |
$ set term/inquire
|
| 459 |
|
| 460 |
+
If the inquire did not help, the solutions is to define the default terminal
|
| 461 |
+
name: >
|
| 462 |
|
| 463 |
$ ! unknown terminal name. Let us use vt320 or ansi instead.
|
| 464 |
$ ! Note: it's case sensitive
|
|
|
|
| 489 |
|
| 490 |
OpenVMS users always have to be aware that the Vim command :! "just" drop them
|
| 491 |
to DCL prompt. This feature is possible to use without any problem with all
|
| 492 |
+
DCL commands, but if we want to execute some programs such as XXD, CTAGS,
|
| 493 |
+
JTAGS, etc. we're running into trouble if we follow the Vim documentation
|
| 494 |
+
(see: help xxd).
|
| 495 |
|
| 496 |
Solution: Execute with the MC command and add the full path to the executable.
|
| 497 |
Example: Instead of :%!xxd command use: >
|
|
|
|
| 709 |
In a cluster that contains nodes with different architectures like below:
|
| 710 |
|
| 711 |
$show cluster
|
| 712 |
+
View of Cluster from system ID 11655 node: TOR 18-AUG-2008 11:58:31
|
| 713 |
+---------------------------------+
|
| 714 |
| SYSTEMS | MEMBERS |
|
| 715 |
+-----------------------+---------|
|
|
|
|
| 775 |
|
| 776 |
Version 9.0 (2023 Nov 27)
|
| 777 |
- Vim is ported to the X86_64 architecture
|
| 778 |
+
- IMPORTANT: because of the getline function name used in structs like
|
| 779 |
+
in ex_cmds.h on X86_64 the CRTL_VER is kept under 80500000 level. The
|
| 780 |
+
proper solution would be to rename the getline function to something
|
| 781 |
+
else in the struct (and in all places it is used) - and avoiding to
|
| 782 |
+
use POSIX functions in structs, but this change would impact on all
|
| 783 |
+
other operating systems. (added to the VMS TODO list)
|
| 784 |
+
Read more about at:
|
| 785 |
+
https://forum.vmssoftware.com/viewtopic.php?f=38&t=8914&p=20049
|
| 786 |
- os_vms_conf.h includes have been reviewed for all architectures
|
| 787 |
- added support for the MODIFIED_BY define
|
| 788 |
|
| 789 |
Version 8.2 (2020 Feb 6)
|
| 790 |
+
- make all changes needed for clean compile build of v8.2 on VMS on all
|
| 791 |
+
platforms
|
| 792 |
- fix the call mkdir bug (vicente_polo@yahoo.es)
|
| 793 |
- test on VSI OpenVMS Alpha and Itanium platforms
|
| 794 |
- added LUA support
|
|
|
|
| 802 |
|
| 803 |
Version 8.0 (2016 Nov 21)
|
| 804 |
- solve the 100% cpu usage issue while waiting for a keystroke
|
| 805 |
+
- correct the VMS warnings and errors around handling the INFINITY (used in
|
| 806 |
+
json.c)
|
| 807 |
- minor VMS port related changes
|
| 808 |
- correct the make_vms.mms file for 8.0
|
| 809 |
- fix [.TESTDIR]make_vms.mms for 8.0
|
| 810 |
|
| 811 |
Version 7.4 (2013 Aug 10)
|
| 812 |
+
- Undo: VMS can not handle more than one dot in the filenames use
|
| 813 |
+
"dir/name" -> "dir/_un_name"
|
| 814 |
add _un_ at the beginning to keep the extension
|
| 815 |
- correct swap file name wildcard handling
|
| 816 |
- handle iconv usage correctly
|
| 817 |
- do not optimize on vax - otherwise it hangs compiling crypto files
|
| 818 |
- fileio.c fix the comment
|
| 819 |
- correct RealWaitForChar
|
| 820 |
+
- after 7.4-119 use different functions lib$cvtf_to_internal_time because
|
| 821 |
+
Alpha and VAX have G_FLOAT but IA64 uses IEEE float otherwise Vim crashes
|
| 822 |
- guard against crashes that are caused by mixed filenames
|
| 823 |
- [TESTDIR]make_vms.mms changed to see the output files
|
| 824 |
- Improve tests, update known issues
|
|
|
|
| 827 |
|
| 828 |
Version 7.3 (2010 Aug 15)
|
| 829 |
- CTAGS 5.8 included
|
| 830 |
+
- VMS compile warnings fixed - floating-point overflow warning corrected on
|
| 831 |
+
VAX
|
| 832 |
- filepath completion corrected - too many chars were escaped in filename
|
| 833 |
and shell commands
|
| 834 |
- the following plugins are included into VMS runtime:
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*os_win32.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by George Reilly
|
|
@@ -153,7 +153,7 @@ Alternatively use three quotes to get one: >
|
|
| 153 |
The quotation rules are:
|
| 154 |
|
| 155 |
1. A `"` starts quotation.
|
| 156 |
-
2. Another `"` or `""` ends quotation.
|
| 157 |
is produced at the end of the quoted string.
|
| 158 |
|
| 159 |
Examples, with [] around an argument:
|
|
@@ -295,7 +295,7 @@ A. You can't! This is a limitation of the NT console. NT 5.0 is reported to
|
|
| 295 |
*:!start*
|
| 296 |
Q. How can I asynchronously run an external command or program, or open a
|
| 297 |
document or URL with its default program?
|
| 298 |
-
A. When using :! to run an external command, you can run it with "start".
|
| 299 |
example, to run notepad: >
|
| 300 |
:!start notepad
|
| 301 |
< To open "image.jpg" with the default image viewer: >
|
|
@@ -320,14 +320,14 @@ A. When using :! to run an external command, you can run it with "start". For
|
|
| 320 |
Q. How do I avoid getting a window for programs that I run asynchronously?
|
| 321 |
A. You have three possible solutions depending on what you want:
|
| 322 |
1) You may use the /min flag in order to run program in a minimized state
|
| 323 |
-
with no other changes.
|
| 324 |
applications.
|
| 325 |
2) You can use the /b flag to run console applications without creating a
|
| 326 |
-
console window for them (GUI applications are not affected).
|
| 327 |
should use this flag only if the application you run doesn't require any
|
| 328 |
input. Otherwise it will get an EOF error because its input stream
|
| 329 |
(stdin) would be redirected to \\.\NUL (stdout and stderr too).
|
| 330 |
-
3) Set the '!' flag in the 'guioptions' option |'go-!'|.
|
| 331 |
run the "start" command inside Vims terminal window and not open a
|
| 332 |
console window.
|
| 333 |
|
|
|
|
| 1 |
+
*os_win32.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by George Reilly
|
|
|
|
| 153 |
The quotation rules are:
|
| 154 |
|
| 155 |
1. A `"` starts quotation.
|
| 156 |
+
2. Another `"` or `""` ends quotation. If the quotation ends with `""`, a `"`
|
| 157 |
is produced at the end of the quoted string.
|
| 158 |
|
| 159 |
Examples, with [] around an argument:
|
|
|
|
| 295 |
*:!start*
|
| 296 |
Q. How can I asynchronously run an external command or program, or open a
|
| 297 |
document or URL with its default program?
|
| 298 |
+
A. When using :! to run an external command, you can run it with "start". For
|
| 299 |
example, to run notepad: >
|
| 300 |
:!start notepad
|
| 301 |
< To open "image.jpg" with the default image viewer: >
|
|
|
|
| 320 |
Q. How do I avoid getting a window for programs that I run asynchronously?
|
| 321 |
A. You have three possible solutions depending on what you want:
|
| 322 |
1) You may use the /min flag in order to run program in a minimized state
|
| 323 |
+
with no other changes. It will work equally for console and GUI
|
| 324 |
applications.
|
| 325 |
2) You can use the /b flag to run console applications without creating a
|
| 326 |
+
console window for them (GUI applications are not affected). But you
|
| 327 |
should use this flag only if the application you run doesn't require any
|
| 328 |
input. Otherwise it will get an EOF error because its input stream
|
| 329 |
(stdin) would be redirected to \\.\NUL (stdout and stderr too).
|
| 330 |
+
3) Set the '!' flag in the 'guioptions' option |'go-!'|. This will make Vim
|
| 331 |
run the "start" command inside Vims terminal window and not open a
|
| 332 |
console window.
|
| 333 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*pattern.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -288,9 +288,9 @@ When searching backwards, searching starts at the start of the line, using the
|
|
| 288 |
cursor position is used.
|
| 289 |
|
| 290 |
In Vi the ":tag" command sets the last search pattern when the tag is searched
|
| 291 |
-
for. In Vim this is not done, the previous search pattern is still
|
| 292 |
-
unless the 't' flag is present in 'cpoptions'. The search pattern
|
| 293 |
-
put in the search history.
|
| 294 |
|
| 295 |
If the 'wrapscan' option is on (which is the default), searches wrap around
|
| 296 |
the end of the buffer. If 'wrapscan' is not set, the backward search stops
|
|
@@ -1151,11 +1151,12 @@ x A single character, with no special meaning, matches itself
|
|
| 1151 |
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
| 1152 |
- If two characters in the sequence are separated by '-', this is
|
| 1153 |
shorthand for the full list of ASCII characters between them. E.g.,
|
| 1154 |
-
"[0-9]" matches any decimal digit. If the starting character
|
| 1155 |
-
the ending character, e.g. [c-a], E944 occurs. Non-ASCII
|
| 1156 |
-
can be used, but the character values must not be more
|
| 1157 |
-
in the old regexp engine. For example, searching by
|
| 1158 |
-
after setting re=1 emits a E945 error. Prepending
|
|
|
|
| 1159 |
- A character class expression is evaluated to the set of characters
|
| 1160 |
belonging to that character class. The following character classes
|
| 1161 |
are supported:
|
|
|
|
| 1 |
+
*pattern.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 288 |
cursor position is used.
|
| 289 |
|
| 290 |
In Vi the ":tag" command sets the last search pattern when the tag is searched
|
| 291 |
+
for. In Vim this is not done, the previous search pattern is still
|
| 292 |
+
remembered, unless the 't' flag is present in 'cpoptions'. The search pattern
|
| 293 |
+
is always put in the search history.
|
| 294 |
|
| 295 |
If the 'wrapscan' option is on (which is the default), searches wrap around
|
| 296 |
the end of the buffer. If 'wrapscan' is not set, the backward search stops
|
|
|
|
| 1151 |
in the collection: "[^xyz]" matches anything but 'x', 'y' and 'z'.
|
| 1152 |
- If two characters in the sequence are separated by '-', this is
|
| 1153 |
shorthand for the full list of ASCII characters between them. E.g.,
|
| 1154 |
+
"[0-9]" matches any decimal digit. If the starting character
|
| 1155 |
+
exceeds the ending character, e.g. [c-a], E944 occurs. Non-ASCII
|
| 1156 |
+
characters can be used, but the character values must not be more
|
| 1157 |
+
than 256 apart in the old regexp engine. For example, searching by
|
| 1158 |
+
[\u3000-\u4000] after setting re=1 emits a E945 error. Prepending
|
| 1159 |
+
\%#=2 will fix it.
|
| 1160 |
- A character class expression is evaluated to the set of characters
|
| 1161 |
belonging to that character class. The following character classes
|
| 1162 |
are supported:
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*popup.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -314,7 +314,7 @@ popup_dialog({what}, {options}) *popup_dialog()*
|
|
| 314 |
\ padding: [],
|
| 315 |
\ mapping: 0,
|
| 316 |
\})
|
| 317 |
-
< Use {options} to change the properties.
|
| 318 |
option with value 'popup_filter_yesno'. Example: >
|
| 319 |
call popup_create('do you want to quit (Yes/no)?', #{
|
| 320 |
\ filter: 'popup_filter_yesno',
|
|
@@ -331,7 +331,7 @@ popup_dialog({what}, {options}) *popup_dialog()*
|
|
| 331 |
|
| 332 |
|
| 333 |
popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
| 334 |
-
Filter that can be used for a popup.
|
| 335 |
j <Down> <C-N> select item below
|
| 336 |
k <Up> <C-P> select item above
|
| 337 |
<Space> <Enter> accept current selection
|
|
@@ -354,7 +354,7 @@ popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
|
| 354 |
|
| 355 |
|
| 356 |
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
| 357 |
-
Filter that can be used for a popup.
|
| 358 |
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
|
| 359 |
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
|
| 360 |
as the second argument. Pressing Esc and 'x' works like
|
|
@@ -460,7 +460,7 @@ popup_getpos({id}) *popup_getpos()*
|
|
| 460 |
|
| 461 |
|
| 462 |
popup_hide({id}) *popup_hide()*
|
| 463 |
-
If {id} is a displayed popup, hide it now.
|
| 464 |
filter it will not be invoked for so long as the popup is
|
| 465 |
hidden.
|
| 466 |
If window {id} does not exist nothing happens. If window {id}
|
|
@@ -491,8 +491,8 @@ popup_locate({row}, {col}) *popup_locate()*
|
|
| 491 |
popup_menu({what}, {options}) *popup_menu()*
|
| 492 |
Show the {what} near the cursor, handle selecting one of the
|
| 493 |
items with cursorkeys, and close it an item is selected with
|
| 494 |
-
Space or Enter.
|
| 495 |
-
useful. This works like: >
|
| 496 |
call popup_create({what}, #{
|
| 497 |
\ pos: 'center',
|
| 498 |
\ zindex: 200,
|
|
@@ -627,7 +627,7 @@ popup_setoptions({id}, {options}) *popup_setoptions()*
|
|
| 627 |
|
| 628 |
|
| 629 |
popup_settext({id}, {text}) *popup_settext()*
|
| 630 |
-
Set the text of the buffer in popup win {id}.
|
| 631 |
a string or a list of strings to be displayed in the popup.
|
| 632 |
Does not change the window size or position, other than caused
|
| 633 |
by the different text.
|
|
@@ -710,7 +710,7 @@ The second argument of |popup_create()| is a dictionary with options:
|
|
| 710 |
omitted or invalid the current window is used. Used
|
| 711 |
when "textprop" is present.
|
| 712 |
textpropid Used to identify the text property when "textprop" is
|
| 713 |
-
present.
|
| 714 |
fixed When FALSE (the default), and:
|
| 715 |
- "pos" is "botleft" or "topleft", and
|
| 716 |
- the popup would be truncated at the right edge of
|
|
@@ -753,7 +753,7 @@ The second argument of |popup_create()| is a dictionary with options:
|
|
| 753 |
wrap TRUE to make the lines wrap (default TRUE).
|
| 754 |
drag TRUE to allow the popup to be dragged with the mouse
|
| 755 |
by grabbing at the border. Has no effect if the
|
| 756 |
-
popup does not have a border.
|
| 757 |
starts and "pos" is "center" it is changed to
|
| 758 |
"topleft".
|
| 759 |
dragall TRUE to allow the popup to be dragged from every
|
|
@@ -803,10 +803,10 @@ The second argument of |popup_create()| is a dictionary with options:
|
|
| 803 |
scrollbar 1 or true: show a scrollbar when the text doesn't fit.
|
| 804 |
zero: do not show a scrollbar. Default is non-zero.
|
| 805 |
Also see |popup-scrollbar|.
|
| 806 |
-
scrollbarhighlight Highlight group name for the scrollbar.
|
| 807 |
background color is what matters. When not given then
|
| 808 |
PmenuSbar is used.
|
| 809 |
-
thumbhighlight Highlight group name for the scrollbar thumb.
|
| 810 |
background color is what matters. When not given then
|
| 811 |
PmenuThumb is used.
|
| 812 |
zindex Priority for the popup, default 50. Minimum value is
|
|
@@ -831,7 +831,7 @@ The second argument of |popup_create()| is a dictionary with options:
|
|
| 831 |
line or to another window.
|
| 832 |
mousemoved Like "moved" but referring to the mouse pointer
|
| 833 |
position
|
| 834 |
-
cursorline TRUE: Highlight the cursor line.
|
| 835 |
text to show this line (only works properly
|
| 836 |
when 'wrap' is off).
|
| 837 |
zero: Do not highlight the cursor line.
|
|
|
|
| 1 |
+
*popup.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 314 |
\ padding: [],
|
| 315 |
\ mapping: 0,
|
| 316 |
\})
|
| 317 |
+
< Use {options} to change the properties. E.g. add a 'filter'
|
| 318 |
option with value 'popup_filter_yesno'. Example: >
|
| 319 |
call popup_create('do you want to quit (Yes/no)?', #{
|
| 320 |
\ filter: 'popup_filter_yesno',
|
|
|
|
| 331 |
|
| 332 |
|
| 333 |
popup_filter_menu({id}, {key}) *popup_filter_menu()*
|
| 334 |
+
Filter that can be used for a popup. These keys can be used:
|
| 335 |
j <Down> <C-N> select item below
|
| 336 |
k <Up> <C-P> select item above
|
| 337 |
<Space> <Enter> accept current selection
|
|
|
|
| 354 |
|
| 355 |
|
| 356 |
popup_filter_yesno({id}, {key}) *popup_filter_yesno()*
|
| 357 |
+
Filter that can be used for a popup. It handles only the keys
|
| 358 |
'y', 'Y' and 'n' or 'N'. Invokes the "callback" of the
|
| 359 |
popup menu with the 1 for 'y' or 'Y' and zero for 'n' or 'N'
|
| 360 |
as the second argument. Pressing Esc and 'x' works like
|
|
|
|
| 460 |
|
| 461 |
|
| 462 |
popup_hide({id}) *popup_hide()*
|
| 463 |
+
If {id} is a displayed popup, hide it now. If the popup has a
|
| 464 |
filter it will not be invoked for so long as the popup is
|
| 465 |
hidden.
|
| 466 |
If window {id} does not exist nothing happens. If window {id}
|
|
|
|
| 491 |
popup_menu({what}, {options}) *popup_menu()*
|
| 492 |
Show the {what} near the cursor, handle selecting one of the
|
| 493 |
items with cursorkeys, and close it an item is selected with
|
| 494 |
+
Space or Enter. {what} should have multiple lines to make
|
| 495 |
+
this useful. This works like: >
|
| 496 |
call popup_create({what}, #{
|
| 497 |
\ pos: 'center',
|
| 498 |
\ zindex: 200,
|
|
|
|
| 627 |
|
| 628 |
|
| 629 |
popup_settext({id}, {text}) *popup_settext()*
|
| 630 |
+
Set the text of the buffer in popup win {id}. {text} is
|
| 631 |
a string or a list of strings to be displayed in the popup.
|
| 632 |
Does not change the window size or position, other than caused
|
| 633 |
by the different text.
|
|
|
|
| 710 |
omitted or invalid the current window is used. Used
|
| 711 |
when "textprop" is present.
|
| 712 |
textpropid Used to identify the text property when "textprop" is
|
| 713 |
+
present. Use zero to reset.
|
| 714 |
fixed When FALSE (the default), and:
|
| 715 |
- "pos" is "botleft" or "topleft", and
|
| 716 |
- the popup would be truncated at the right edge of
|
|
|
|
| 753 |
wrap TRUE to make the lines wrap (default TRUE).
|
| 754 |
drag TRUE to allow the popup to be dragged with the mouse
|
| 755 |
by grabbing at the border. Has no effect if the
|
| 756 |
+
popup does not have a border. As soon as dragging
|
| 757 |
starts and "pos" is "center" it is changed to
|
| 758 |
"topleft".
|
| 759 |
dragall TRUE to allow the popup to be dragged from every
|
|
|
|
| 803 |
scrollbar 1 or true: show a scrollbar when the text doesn't fit.
|
| 804 |
zero: do not show a scrollbar. Default is non-zero.
|
| 805 |
Also see |popup-scrollbar|.
|
| 806 |
+
scrollbarhighlight Highlight group name for the scrollbar. The
|
| 807 |
background color is what matters. When not given then
|
| 808 |
PmenuSbar is used.
|
| 809 |
+
thumbhighlight Highlight group name for the scrollbar thumb. The
|
| 810 |
background color is what matters. When not given then
|
| 811 |
PmenuThumb is used.
|
| 812 |
zindex Priority for the popup, default 50. Minimum value is
|
|
|
|
| 831 |
line or to another window.
|
| 832 |
mousemoved Like "moved" but referring to the mouse pointer
|
| 833 |
position
|
| 834 |
+
cursorline TRUE: Highlight the cursor line. Also scrolls the
|
| 835 |
text to show this line (only works properly
|
| 836 |
when 'wrap' is off).
|
| 837 |
zero: Do not highlight the cursor line.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*print.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -178,7 +178,7 @@ value for non-MS-Windows a trick is used: Adding "v:shell_error" will result
|
|
| 178 |
in a non-zero number when the system() call fails.
|
| 179 |
|
| 180 |
If the expression starts with s: or |<SID>|, then it is replaced with the
|
| 181 |
-
script ID (|local-function|).
|
| 182 |
set printexpr=s:MyPrintFile()
|
| 183 |
set printexpr=<SID>SomePrintFile()
|
| 184 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
@@ -545,8 +545,9 @@ There are a number of possible causes as to why the printing may have failed:
|
|
| 545 |
not support the requested paper size. By default Vim uses A4 paper. Find
|
| 546 |
out what size paper your printer normally uses and set the appropriate paper
|
| 547 |
size with 'printoptions'. If you cannot find the name of the paper used,
|
| 548 |
-
measure a sheet and compare it with the table of supported paper sizes
|
| 549 |
-
for 'printoptions', using the paper that is closest in both width AND
|
|
|
|
| 550 |
Note: The dimensions of actual paper may vary slightly from the ones listed.
|
| 551 |
If there is no paper listed close enough, then you may want to try psresize
|
| 552 |
from PSUtils, discussed below.
|
|
|
|
| 1 |
+
*print.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 178 |
in a non-zero number when the system() call fails.
|
| 179 |
|
| 180 |
If the expression starts with s: or |<SID>|, then it is replaced with the
|
| 181 |
+
script ID (|local-function|). Example: >
|
| 182 |
set printexpr=s:MyPrintFile()
|
| 183 |
set printexpr=<SID>SomePrintFile()
|
| 184 |
Otherwise, the expression is evaluated in the context of the script where the
|
|
|
|
| 545 |
not support the requested paper size. By default Vim uses A4 paper. Find
|
| 546 |
out what size paper your printer normally uses and set the appropriate paper
|
| 547 |
size with 'printoptions'. If you cannot find the name of the paper used,
|
| 548 |
+
measure a sheet and compare it with the table of supported paper sizes
|
| 549 |
+
listed for 'printoptions', using the paper that is closest in both width AND
|
| 550 |
+
height.
|
| 551 |
Note: The dimensions of actual paper may vary slightly from the ones listed.
|
| 552 |
If there is no paper listed close enough, then you may want to try psresize
|
| 553 |
from PSUtils, discussed below.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*quickfix.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -45,13 +45,13 @@ compiler (see |errorformat| below).
|
|
| 45 |
|
| 46 |
*quickfix-stack* *quickfix-ID* *E1545*
|
| 47 |
Each quickfix list has a unique identifier called the quickfix ID and this
|
| 48 |
-
number will not change within a Vim session.
|
| 49 |
-
used to get the identifier assigned to a list.
|
| 50 |
number which may change whenever more than 'chistory' lists are added to a
|
| 51 |
quickfix stack.
|
| 52 |
|
| 53 |
*location-list* *E776*
|
| 54 |
-
A location list is a window-local quickfix list.
|
| 55 |
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
|
| 56 |
location list instead of a quickfix list as the corresponding `:vimgrep`,
|
| 57 |
`:grep`, `:helpgrep`, `:make` do.
|
|
@@ -67,7 +67,7 @@ the location list is destroyed.
|
|
| 67 |
*quickfix-changedtick*
|
| 68 |
Every quickfix and location list has a read-only changedtick variable that
|
| 69 |
tracks the total number of changes made to the list. Every time the quickfix
|
| 70 |
-
list is modified, this count is incremented.
|
| 71 |
action only when the list has changed. The |getqflist()| and |getloclist()|
|
| 72 |
functions can be used to query the current value of changedtick. You cannot
|
| 73 |
change the changedtick variable.
|
|
@@ -87,9 +87,9 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 87 |
*:cc*
|
| 88 |
:cc[!] [nr] Display error [nr]. If [nr] is omitted, the same
|
| 89 |
:[nr]cc[!] error is displayed again. Without [!] this doesn't
|
| 90 |
-
work when jumping to another buffer, the current
|
| 91 |
-
has been changed, there is the only window for
|
| 92 |
-
buffer and both 'hidden' and 'autowrite' are off.
|
| 93 |
When jumping to another buffer with [!] any changes to
|
| 94 |
the current buffer are lost, unless 'hidden' is set or
|
| 95 |
there is another window for this buffer.
|
|
@@ -131,10 +131,10 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 131 |
used. If there are no errors, then an error message
|
| 132 |
is displayed. Assumes that the entries in a quickfix
|
| 133 |
list are sorted by their buffer number and line
|
| 134 |
-
number.
|
| 135 |
-
then only the first entry is used. If [count]
|
| 136 |
-
the number of entries above the current line,
|
| 137 |
-
first error in the file is selected.
|
| 138 |
|
| 139 |
*:lab* *:labove*
|
| 140 |
:[count]lab[ove] Same as ":cabove", except the location list for the
|
|
@@ -276,7 +276,7 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 276 |
|
| 277 |
*:caddf* *:caddfile*
|
| 278 |
:caddf[ile] [errorfile] Read the error file and add the errors from the
|
| 279 |
-
errorfile to the current quickfix list.
|
| 280 |
list is not present, then a new list is created.
|
| 281 |
If the encoding of the error file differs from the
|
| 282 |
'encoding' option, you can use the 'makeencoding'
|
|
@@ -317,7 +317,7 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 317 |
Read the error list from the current buffer and add
|
| 318 |
the errors to the current quickfix list. If a
|
| 319 |
quickfix list is not present, then a new list is
|
| 320 |
-
created.
|
| 321 |
|
| 322 |
*:laddb* *:laddbuffer*
|
| 323 |
:[range]laddb[uffer] [bufnr]
|
|
@@ -354,9 +354,9 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 354 |
|
| 355 |
*:cadde* *:caddexpr*
|
| 356 |
:cadde[xpr] {expr} Evaluate {expr} and add the resulting lines to the
|
| 357 |
-
current quickfix list.
|
| 358 |
-
present, then a new list is created.
|
| 359 |
-
cursor position will not be changed.
|
| 360 |
more information.
|
| 361 |
Example: >
|
| 362 |
:g/mypattern/caddexpr expand("%") .. ":" .. line(".") .. ":" .. getline(".")
|
|
@@ -368,11 +368,12 @@ processing a quickfix or location list command, it will be aborted.
|
|
| 368 |
*:cl* *:clist*
|
| 369 |
:cl[ist] [from] [, [to]]
|
| 370 |
List all errors that are valid |quickfix-valid|.
|
| 371 |
-
If numbers [from] and/or [to] are given, the
|
| 372 |
-
range of errors is listed. A negative
|
| 373 |
-
from the last error backwards, -1 being
|
|
|
|
| 374 |
The |:filter| command can be used to display only the
|
| 375 |
-
quickfix entries matching a supplied pattern.
|
| 376 |
pattern is matched against the filename, module name,
|
| 377 |
pattern and text of the entry.
|
| 378 |
|
|
@@ -408,7 +409,7 @@ the error location may not be correct. If you quit Vim and start again the
|
|
| 408 |
marks are lost and the error locations may not be correct anymore.
|
| 409 |
|
| 410 |
Two autocommands are available for running commands before and after a
|
| 411 |
-
quickfix command (':make', ':grep' and so on) is executed.
|
| 412 |
|QuickFixCmdPre| and |QuickFixCmdPost| for details.
|
| 413 |
|
| 414 |
*QuickFixCmdPost-example*
|
|
@@ -427,11 +428,11 @@ use this code: >
|
|
| 427 |
Another option is using 'makeencoding'.
|
| 428 |
|
| 429 |
*quickfix-title*
|
| 430 |
-
Every quickfix and location list has a title.
|
| 431 |
-
the command that created the list.
|
| 432 |
functions can be used to get the title of a quickfix and a location list
|
| 433 |
-
respectively.
|
| 434 |
-
modify the title of a quickfix and location list respectively.
|
| 435 |
call setqflist([], 'a', {'title' : 'Cmd output'})
|
| 436 |
echo getqflist({'title' : 1})
|
| 437 |
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
|
|
@@ -440,32 +441,32 @@ modify the title of a quickfix and location list respectively. Examples: >
|
|
| 440 |
*quickfix-index*
|
| 441 |
When you jump to a quickfix/location list entry using any of the quickfix
|
| 442 |
commands (e.g. |:cc|, |:cnext|, |:cprev|, etc.), that entry becomes the
|
| 443 |
-
currently selected entry.
|
| 444 |
quickfix/location list can be obtained using the getqflist()/getloclist()
|
| 445 |
-
functions.
|
| 446 |
echo getqflist({'idx' : 0}).idx
|
| 447 |
echo getqflist({'id' : qfid, 'idx' : 0}).idx
|
| 448 |
echo getloclist(2, {'idx' : 0}).idx
|
| 449 |
<
|
| 450 |
For a new quickfix list, the first entry is selected and the index is 1. Any
|
| 451 |
entry in any quickfix/location list can be set as the currently selected entry
|
| 452 |
-
using the setqflist() function.
|
| 453 |
call setqflist([], 'a', {'idx' : 12})
|
| 454 |
call setqflist([], 'a', {'id' : qfid, 'idx' : 7})
|
| 455 |
call setloclist(1, [], 'a', {'idx' : 7})
|
| 456 |
<
|
| 457 |
*quickfix-size*
|
| 458 |
You can get the number of entries (size) in a quickfix and a location list
|
| 459 |
-
using the |getqflist()| and |getloclist()| functions respectively.
|
| 460 |
echo getqflist({'size' : 1})
|
| 461 |
echo getloclist(5, {'size' : 1})
|
| 462 |
<
|
| 463 |
*quickfix-context*
|
| 464 |
Any Vim type can be associated as a context with a quickfix or location list.
|
| 465 |
The |setqflist()| and the |setloclist()| functions can be used to associate a
|
| 466 |
-
context with a quickfix and a location list respectively.
|
| 467 |
and the |getloclist()| functions can be used to retrieve the context of a
|
| 468 |
-
quickfix and a location list respectively.
|
| 469 |
dealing with multiple quickfix/location lists.
|
| 470 |
Examples: >
|
| 471 |
|
|
@@ -479,11 +480,11 @@ Examples: >
|
|
| 479 |
<
|
| 480 |
*quickfix-parse*
|
| 481 |
You can parse a list of lines using 'errorformat' without creating or
|
| 482 |
-
modifying a quickfix list using the |getqflist()| function.
|
| 483 |
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
|
| 484 |
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
|
| 485 |
This returns a dictionary where the "items" key contains the list of quickfix
|
| 486 |
-
entries parsed from lines.
|
| 487 |
'errorformat' to parse the lines without modifying the 'errorformat' option: >
|
| 488 |
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
|
| 489 |
<
|
|
@@ -562,11 +563,11 @@ Then you can use the following commands to filter a quickfix/location list: >
|
|
| 562 |
:Lfilter[!] /{pat}/
|
| 563 |
|
| 564 |
The |:Cfilter| command creates a new quickfix list from the entries matching
|
| 565 |
-
{pat} in the current quickfix list.
|
| 566 |
-
pattern.
|
| 567 |
-
{pat}.
|
| 568 |
-
used.
|
| 569 |
-
characters: ', ", /.
|
| 570 |
pattern is used.
|
| 571 |
|
| 572 |
The |:Lfilter| command does the same as |:Cfilter| but operates on the current
|
|
@@ -595,19 +596,19 @@ can go back to the unfiltered list using the |:colder|/|:lolder| command.
|
|
| 595 |
'buftype' equal to "quickfix". Don't change this!
|
| 596 |
The window will have the w:quickfix_title variable set
|
| 597 |
which will indicate the command that produced the
|
| 598 |
-
quickfix list.
|
| 599 |
status line if the value of 'statusline' is adjusted
|
| 600 |
-
properly.
|
| 601 |
quickfix command or function, the |b:changedtick|
|
| 602 |
variable is incremented. You can get the number of
|
| 603 |
this buffer using the getqflist() and getloclist()
|
| 604 |
-
functions by passing the "qfbufnr" item.
|
| 605 |
location list, this buffer is wiped out when the
|
| 606 |
location list is removed.
|
| 607 |
|
| 608 |
*:lop* *:lopen*
|
| 609 |
:lop[en] [height] Open a window to show the location list for the
|
| 610 |
-
current window.
|
| 611 |
the current window is present. You can have more than
|
| 612 |
one location window opened at a time. Otherwise, it
|
| 613 |
acts the same as ":copen".
|
|
@@ -714,7 +715,7 @@ The location list window displays the entries in a location list. When you
|
|
| 714 |
open a location list window, it is created below the current window and
|
| 715 |
displays the location list for the current window. The location list window
|
| 716 |
is similar to the quickfix window, except that you can have more than one
|
| 717 |
-
location list window open at a time.
|
| 718 |
this window, the displayed location list is used.
|
| 719 |
|
| 720 |
When you select a file from the location list window, the following steps are
|
|
@@ -743,7 +744,7 @@ present). Examples: >
|
|
| 743 |
<
|
| 744 |
*getqflist-examples*
|
| 745 |
The |getqflist()| and |getloclist()| functions can be used to get the various
|
| 746 |
-
attributes of a quickfix and location list respectively.
|
| 747 |
using these functions are below:
|
| 748 |
>
|
| 749 |
" get the title of the current quickfix list
|
|
@@ -809,7 +810,7 @@ using these functions are below:
|
|
| 809 |
<
|
| 810 |
*setqflist-examples*
|
| 811 |
The |setqflist()| and |setloclist()| functions can be used to set the various
|
| 812 |
-
attributes of a quickfix and location list respectively.
|
| 813 |
using these functions are below:
|
| 814 |
>
|
| 815 |
" create an empty quickfix list with a title and a context
|
|
@@ -893,7 +894,7 @@ existing error lists as the current one.
|
|
| 893 |
error list 3 of 3; 15 errors :grep ex_help *.c ~
|
| 894 |
|
| 895 |
When [count] is given, then the count'th quickfix
|
| 896 |
-
list is made the current list.
|
| 897 |
" Make the 4th quickfix list current
|
| 898 |
:4chistory
|
| 899 |
<
|
|
@@ -910,7 +911,7 @@ lists, use ":cnewer 99" first.
|
|
| 910 |
|
| 911 |
To get the number of lists in the quickfix and location list stack, you can
|
| 912 |
use the |getqflist()| and |getloclist()| functions respectively with the list
|
| 913 |
-
number set to the special value '$'.
|
| 914 |
echo getqflist({'nr' : '$'}).nr
|
| 915 |
echo getloclist(3, {'nr' : '$'}).nr
|
| 916 |
To get the number of the current list in the stack: >
|
|
@@ -1066,7 +1067,7 @@ commands can be combined to create a NewGrep command: >
|
|
| 1066 |
buffer are abandoned.
|
| 1067 |
|
| 1068 |
'f' When the 'f' flag is specified, fuzzy string
|
| 1069 |
-
matching is used to find matching lines.
|
| 1070 |
case, {pattern} is treated as a literal string
|
| 1071 |
instead of a regular expression. See
|
| 1072 |
|fuzzy-matching| for more information about fuzzy
|
|
@@ -1181,8 +1182,8 @@ arguments to :grep are passed straight to the "grep" program, so you can use
|
|
| 1181 |
whatever options your "grep" supports.
|
| 1182 |
|
| 1183 |
By default, :grep invokes grep with the -n option (show file and line
|
| 1184 |
-
numbers). You can change this with the 'grepprg' option. You will need to
|
| 1185 |
-
'grepprg' if:
|
| 1186 |
|
| 1187 |
a) You are using a program that isn't called "grep"
|
| 1188 |
b) You have to call grep with a full path
|
|
@@ -1282,7 +1283,7 @@ Use the |compiler-make| plugin to undo the effect of a compiler plugin.
|
|
| 1282 |
|
| 1283 |
CPPCHECK *quickfix-cppcheck* *compiler-cppcheck*
|
| 1284 |
|
| 1285 |
-
Use g/b:`c_cppcheck_params` to set cppcheck parameters.
|
| 1286 |
settings by default include
|
| 1287 |
|
| 1288 |
- `--verbose`: Enables verbose output.
|
|
@@ -1297,10 +1298,10 @@ For C++ files (`filetype == 'cpp'`), the `--language=c++` option is added to
|
|
| 1297 |
ensure Cppcheck treats the file as C++.
|
| 1298 |
|
| 1299 |
If compile_commands.json is present in the current directory, it is added as a
|
| 1300 |
-
`--project` parameter to the command line.
|
| 1301 |
-
directories in &path are passed as include directories.
|
| 1302 |
-
g/b:`c_cppcheck_includes` as a list of `-I` flags.
|
| 1303 |
-
plug-in [0] can expand &path.
|
| 1304 |
|
| 1305 |
let &l:path = join(systemlist('git ls-tree -d --name-only -r HEAD'), ',')
|
| 1306 |
|
|
@@ -1308,12 +1309,13 @@ plug-in [0] can expand &path. To also append the folders in a git repo use >
|
|
| 1308 |
|
| 1309 |
DOTNET *compiler-dotnet*
|
| 1310 |
|
| 1311 |
-
The .NET CLI compiler outputs both errors and warnings by default.
|
| 1312 |
may be limited to include only errors, by setting the g:dotnet_errors_only
|
| 1313 |
variable to |v:true|.
|
| 1314 |
|
| 1315 |
-
The associated project name is included in each error and warning.
|
| 1316 |
-
the project name, set the g:dotnet_show_project_file variable to
|
|
|
|
| 1317 |
|
| 1318 |
Example: limit output to only display errors, and suppress the project name: >
|
| 1319 |
let dotnet_errors_only = v:true
|
|
@@ -1600,9 +1602,9 @@ manpage) as input and expects that the output file type extension is passed to
|
|
| 1600 |
make, say :make html or :make pdf.
|
| 1601 |
|
| 1602 |
Additional arguments can be passed to groff by setting them in
|
| 1603 |
-
`b:groff_compiler_args` or `g:groff_compiler_args`.
|
| 1604 |
passed to groff is set using 'spelllang'; it can be overridden by setting
|
| 1605 |
-
`b:groff_compiler_lang`.
|
| 1606 |
by setting `b:groff_compiler_encoding` or `g:groff_compiler_encoding`.
|
| 1607 |
|
| 1608 |
PANDOC *quickfix-pandoc* *compiler-pandoc*
|
|
@@ -1690,8 +1692,8 @@ Included in the distribution compiler for TeX ($VIMRUNTIME/compiler/tex.vim)
|
|
| 1690 |
uses make command if possible. If the compiler finds a file named "Makefile"
|
| 1691 |
or "makefile" in the current directory, it supposes that you want to process
|
| 1692 |
your *TeX files with make, and the makefile does the right work. In this case
|
| 1693 |
-
compiler sets 'errorformat' for *TeX output and leaves 'makeprg' untouched.
|
| 1694 |
-
neither "Makefile" nor "makefile" is found, the compiler will not use make.
|
| 1695 |
You can force the compiler to ignore makefiles by defining
|
| 1696 |
b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for
|
| 1697 |
existence only).
|
|
@@ -1731,13 +1733,13 @@ b/g:tsc_makeprg variable. For example: >
|
|
| 1731 |
|
| 1732 |
TYPST COMPILER *compiler-typst*
|
| 1733 |
|
| 1734 |
-
Vim includes a compiler plugin for Typst files.
|
| 1735 |
automatically in Typst buffers by the Typst filetype plugin |ft-typst-plugin|.
|
| 1736 |
Run |:make| to compile the current Typst file.
|
| 1737 |
|
| 1738 |
*g:typst_cmd*
|
| 1739 |
-
By default Vim will use "typst" as the command to run the Typst compiler.
|
| 1740 |
-
can be changed by setting the |g:typst_cmd| variable: >
|
| 1741 |
let g:typst_cmd = "/path/to/other/command"
|
| 1742 |
|
| 1743 |
=============================================================================
|
|
@@ -1824,11 +1826,11 @@ or >
|
|
| 1824 |
to indicate the column of the error. This is to be used in a multi-line error
|
| 1825 |
message. See |errorformat-javac| for a useful example.
|
| 1826 |
|
| 1827 |
-
The "%s" conversion specifies the text to search for, to locate the error
|
| 1828 |
-
The text is used as a literal string. The anchors "^" and "$" are
|
| 1829 |
-
the text to locate the error line exactly matching the search text
|
| 1830 |
-
text is prefixed with the "\V" atom to make it "very nomagic". The
|
| 1831 |
-
conversion can be used to locate lines without a line number in the error
|
| 1832 |
output. Like the output of the "grep" shell command.
|
| 1833 |
When the pattern is present the line number will not be used.
|
| 1834 |
|
|
@@ -2019,7 +2021,8 @@ be escaped), meta symbols have to be written with leading '%':
|
|
| 2019 |
%~ The single '~' character.
|
| 2020 |
When using character classes in expressions (see |/\i| for an overview),
|
| 2021 |
terms containing the "\+" quantifier can be written in the scanf() "%*"
|
| 2022 |
-
notation. Example: "%\\d%\\+" ("\d\+", "any number") is equivalent to
|
|
|
|
| 2023 |
Important note: The \(...\) grouping of sub-matches can not be used in format
|
| 2024 |
specifications because it is reserved for internal conversions.
|
| 2025 |
|
|
@@ -2227,7 +2230,7 @@ You need to put the following in "vim-javac-filter" somewhere in your path
|
|
| 2227 |
In English, that sed script:
|
| 2228 |
- Changes single tabs to single spaces and
|
| 2229 |
- Moves the line with the filename, line number, error message to just after
|
| 2230 |
-
the pointer line.
|
| 2231 |
vim's notion of a "multi-line message" and also doesn't force us to include
|
| 2232 |
it as a "continuation of a multi-line message."
|
| 2233 |
|
|
@@ -2356,40 +2359,40 @@ The values displayed in each line correspond to the "bufnr", "lnum", "col" and
|
|
| 2356 |
For some quickfix/location lists, the displayed text needs to be customized.
|
| 2357 |
For example, if only the filename is present for a quickfix entry, then the
|
| 2358 |
two "|" field separator characters after the filename are not needed. Another
|
| 2359 |
-
use case is to customize the path displayed for a filename.
|
| 2360 |
complete path (which may be too long) is displayed for files which are not
|
| 2361 |
-
under the current directory tree.
|
| 2362 |
-
common parent directory.
|
| 2363 |
|
| 2364 |
The displayed text can be customized by setting the 'quickfixtextfunc' option
|
| 2365 |
to a Vim function. This function will be called with a dict argument and
|
| 2366 |
should return a List of strings to be displayed in the quickfix or location
|
| 2367 |
-
list window.
|
| 2368 |
|
| 2369 |
quickfix set to 1 when called for a quickfix list and 0 when called for
|
| 2370 |
a location list.
|
| 2371 |
winid for a location list, set to the id of the window with the
|
| 2372 |
-
location list.
|
| 2373 |
getloclist() to get the location list entry.
|
| 2374 |
id quickfix or location list identifier
|
| 2375 |
start_idx index of the first entry for which text should be returned
|
| 2376 |
end_idx index of the last entry for which text should be returned
|
| 2377 |
|
| 2378 |
The function should return a single line of text to display in the quickfix
|
| 2379 |
-
window for each entry from start_idx to end_idx.
|
| 2380 |
information about the entries using the |getqflist()| function and specifying
|
| 2381 |
-
the quickfix list identifier "id".
|
| 2382 |
-
can be used with the "winid" argument.
|
| 2383 |
-
default format is used to display all the entries.
|
| 2384 |
list is an empty string, then the default format is used to display the
|
| 2385 |
corresponding entry.
|
| 2386 |
|
| 2387 |
If a quickfix or location list specific customization is needed, then the
|
| 2388 |
'quickfixtextfunc' attribute of the list can be set using the |setqflist()| or
|
| 2389 |
-
|setloclist()| function.
|
| 2390 |
|
| 2391 |
The example below displays the list of old files (|v:oldfiles|) in a quickfix
|
| 2392 |
-
window.
|
| 2393 |
associated with each entry, the 'quickfixtextfunc' function returns only the
|
| 2394 |
filename.
|
| 2395 |
Example: >
|
|
|
|
| 1 |
+
*quickfix.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 45 |
|
| 46 |
*quickfix-stack* *quickfix-ID* *E1545*
|
| 47 |
Each quickfix list has a unique identifier called the quickfix ID and this
|
| 48 |
+
number will not change within a Vim session. The |getqflist()| function can be
|
| 49 |
+
used to get the identifier assigned to a list. There is also a quickfix list
|
| 50 |
number which may change whenever more than 'chistory' lists are added to a
|
| 51 |
quickfix stack.
|
| 52 |
|
| 53 |
*location-list* *E776*
|
| 54 |
+
A location list is a window-local quickfix list. You get one after commands
|
| 55 |
like `:lvimgrep`, `:lgrep`, `:lhelpgrep`, `:lmake`, etc., which create a
|
| 56 |
location list instead of a quickfix list as the corresponding `:vimgrep`,
|
| 57 |
`:grep`, `:helpgrep`, `:make` do.
|
|
|
|
| 67 |
*quickfix-changedtick*
|
| 68 |
Every quickfix and location list has a read-only changedtick variable that
|
| 69 |
tracks the total number of changes made to the list. Every time the quickfix
|
| 70 |
+
list is modified, this count is incremented. This can be used to perform an
|
| 71 |
action only when the list has changed. The |getqflist()| and |getloclist()|
|
| 72 |
functions can be used to query the current value of changedtick. You cannot
|
| 73 |
change the changedtick variable.
|
|
|
|
| 87 |
*:cc*
|
| 88 |
:cc[!] [nr] Display error [nr]. If [nr] is omitted, the same
|
| 89 |
:[nr]cc[!] error is displayed again. Without [!] this doesn't
|
| 90 |
+
work when jumping to another buffer, the current
|
| 91 |
+
buffer has been changed, there is the only window for
|
| 92 |
+
the buffer and both 'hidden' and 'autowrite' are off.
|
| 93 |
When jumping to another buffer with [!] any changes to
|
| 94 |
the current buffer are lost, unless 'hidden' is set or
|
| 95 |
there is another window for this buffer.
|
|
|
|
| 131 |
used. If there are no errors, then an error message
|
| 132 |
is displayed. Assumes that the entries in a quickfix
|
| 133 |
list are sorted by their buffer number and line
|
| 134 |
+
number. If there are multiple errors on the same
|
| 135 |
+
line, then only the first entry is used. If [count]
|
| 136 |
+
exceeds the number of entries above the current line,
|
| 137 |
+
then the first error in the file is selected.
|
| 138 |
|
| 139 |
*:lab* *:labove*
|
| 140 |
:[count]lab[ove] Same as ":cabove", except the location list for the
|
|
|
|
| 276 |
|
| 277 |
*:caddf* *:caddfile*
|
| 278 |
:caddf[ile] [errorfile] Read the error file and add the errors from the
|
| 279 |
+
errorfile to the current quickfix list. If a quickfix
|
| 280 |
list is not present, then a new list is created.
|
| 281 |
If the encoding of the error file differs from the
|
| 282 |
'encoding' option, you can use the 'makeencoding'
|
|
|
|
| 317 |
Read the error list from the current buffer and add
|
| 318 |
the errors to the current quickfix list. If a
|
| 319 |
quickfix list is not present, then a new list is
|
| 320 |
+
created. Otherwise, same as ":cbuffer".
|
| 321 |
|
| 322 |
*:laddb* *:laddbuffer*
|
| 323 |
:[range]laddb[uffer] [bufnr]
|
|
|
|
| 354 |
|
| 355 |
*:cadde* *:caddexpr*
|
| 356 |
:cadde[xpr] {expr} Evaluate {expr} and add the resulting lines to the
|
| 357 |
+
current quickfix list. If a quickfix list is not
|
| 358 |
+
present, then a new list is created. The current
|
| 359 |
+
cursor position will not be changed. See |:cexpr| for
|
| 360 |
more information.
|
| 361 |
Example: >
|
| 362 |
:g/mypattern/caddexpr expand("%") .. ":" .. line(".") .. ":" .. getline(".")
|
|
|
|
| 368 |
*:cl* *:clist*
|
| 369 |
:cl[ist] [from] [, [to]]
|
| 370 |
List all errors that are valid |quickfix-valid|.
|
| 371 |
+
If numbers [from] and/or [to] are given, the
|
| 372 |
+
respective range of errors is listed. A negative
|
| 373 |
+
number counts from the last error backwards, -1 being
|
| 374 |
+
the last error.
|
| 375 |
The |:filter| command can be used to display only the
|
| 376 |
+
quickfix entries matching a supplied pattern. The
|
| 377 |
pattern is matched against the filename, module name,
|
| 378 |
pattern and text of the entry.
|
| 379 |
|
|
|
|
| 409 |
marks are lost and the error locations may not be correct anymore.
|
| 410 |
|
| 411 |
Two autocommands are available for running commands before and after a
|
| 412 |
+
quickfix command (':make', ':grep' and so on) is executed. See
|
| 413 |
|QuickFixCmdPre| and |QuickFixCmdPost| for details.
|
| 414 |
|
| 415 |
*QuickFixCmdPost-example*
|
|
|
|
| 428 |
Another option is using 'makeencoding'.
|
| 429 |
|
| 430 |
*quickfix-title*
|
| 431 |
+
Every quickfix and location list has a title. By default the title is set to
|
| 432 |
+
the command that created the list. The |getqflist()| and |getloclist()|
|
| 433 |
functions can be used to get the title of a quickfix and a location list
|
| 434 |
+
respectively. The |setqflist()| and |setloclist()| functions can be used to
|
| 435 |
+
modify the title of a quickfix and location list respectively. Examples: >
|
| 436 |
call setqflist([], 'a', {'title' : 'Cmd output'})
|
| 437 |
echo getqflist({'title' : 1})
|
| 438 |
call setloclist(3, [], 'a', {'title' : 'Cmd output'})
|
|
|
|
| 441 |
*quickfix-index*
|
| 442 |
When you jump to a quickfix/location list entry using any of the quickfix
|
| 443 |
commands (e.g. |:cc|, |:cnext|, |:cprev|, etc.), that entry becomes the
|
| 444 |
+
currently selected entry. The index of the currently selected entry in a
|
| 445 |
quickfix/location list can be obtained using the getqflist()/getloclist()
|
| 446 |
+
functions. Examples: >
|
| 447 |
echo getqflist({'idx' : 0}).idx
|
| 448 |
echo getqflist({'id' : qfid, 'idx' : 0}).idx
|
| 449 |
echo getloclist(2, {'idx' : 0}).idx
|
| 450 |
<
|
| 451 |
For a new quickfix list, the first entry is selected and the index is 1. Any
|
| 452 |
entry in any quickfix/location list can be set as the currently selected entry
|
| 453 |
+
using the setqflist() function. Examples: >
|
| 454 |
call setqflist([], 'a', {'idx' : 12})
|
| 455 |
call setqflist([], 'a', {'id' : qfid, 'idx' : 7})
|
| 456 |
call setloclist(1, [], 'a', {'idx' : 7})
|
| 457 |
<
|
| 458 |
*quickfix-size*
|
| 459 |
You can get the number of entries (size) in a quickfix and a location list
|
| 460 |
+
using the |getqflist()| and |getloclist()| functions respectively. Examples: >
|
| 461 |
echo getqflist({'size' : 1})
|
| 462 |
echo getloclist(5, {'size' : 1})
|
| 463 |
<
|
| 464 |
*quickfix-context*
|
| 465 |
Any Vim type can be associated as a context with a quickfix or location list.
|
| 466 |
The |setqflist()| and the |setloclist()| functions can be used to associate a
|
| 467 |
+
context with a quickfix and a location list respectively. The |getqflist()|
|
| 468 |
and the |getloclist()| functions can be used to retrieve the context of a
|
| 469 |
+
quickfix and a location list respectively. This is useful for a Vim plugin
|
| 470 |
dealing with multiple quickfix/location lists.
|
| 471 |
Examples: >
|
| 472 |
|
|
|
|
| 480 |
<
|
| 481 |
*quickfix-parse*
|
| 482 |
You can parse a list of lines using 'errorformat' without creating or
|
| 483 |
+
modifying a quickfix list using the |getqflist()| function. Examples: >
|
| 484 |
echo getqflist({'lines' : ["F1:10:Line10", "F2:20:Line20"]})
|
| 485 |
echo getqflist({'lines' : systemlist('grep -Hn quickfix *')})
|
| 486 |
This returns a dictionary where the "items" key contains the list of quickfix
|
| 487 |
+
entries parsed from lines. The following shows how to use a custom
|
| 488 |
'errorformat' to parse the lines without modifying the 'errorformat' option: >
|
| 489 |
echo getqflist({'efm' : '%f#%l#%m', 'lines' : ['F1#10#Line']})
|
| 490 |
<
|
|
|
|
| 563 |
:Lfilter[!] /{pat}/
|
| 564 |
|
| 565 |
The |:Cfilter| command creates a new quickfix list from the entries matching
|
| 566 |
+
{pat} in the current quickfix list. {pat} is a Vim |regular-expression|
|
| 567 |
+
pattern. Both the file name and the text of the entries are matched against
|
| 568 |
+
{pat}. If the optional ! is supplied, then the entries not matching {pat} are
|
| 569 |
+
used. The pattern can be optionally enclosed using one of the following
|
| 570 |
+
characters: ', ", /. If the pattern is empty, then the last used search
|
| 571 |
pattern is used.
|
| 572 |
|
| 573 |
The |:Lfilter| command does the same as |:Cfilter| but operates on the current
|
|
|
|
| 596 |
'buftype' equal to "quickfix". Don't change this!
|
| 597 |
The window will have the w:quickfix_title variable set
|
| 598 |
which will indicate the command that produced the
|
| 599 |
+
quickfix list. This can be used to compose a custom
|
| 600 |
status line if the value of 'statusline' is adjusted
|
| 601 |
+
properly. Whenever this buffer is modified by a
|
| 602 |
quickfix command or function, the |b:changedtick|
|
| 603 |
variable is incremented. You can get the number of
|
| 604 |
this buffer using the getqflist() and getloclist()
|
| 605 |
+
functions by passing the "qfbufnr" item. For a
|
| 606 |
location list, this buffer is wiped out when the
|
| 607 |
location list is removed.
|
| 608 |
|
| 609 |
*:lop* *:lopen*
|
| 610 |
:lop[en] [height] Open a window to show the location list for the
|
| 611 |
+
current window. Works only when the location list for
|
| 612 |
the current window is present. You can have more than
|
| 613 |
one location window opened at a time. Otherwise, it
|
| 614 |
acts the same as ":copen".
|
|
|
|
| 715 |
open a location list window, it is created below the current window and
|
| 716 |
displays the location list for the current window. The location list window
|
| 717 |
is similar to the quickfix window, except that you can have more than one
|
| 718 |
+
location list window open at a time. When you use a location list command in
|
| 719 |
this window, the displayed location list is used.
|
| 720 |
|
| 721 |
When you select a file from the location list window, the following steps are
|
|
|
|
| 744 |
<
|
| 745 |
*getqflist-examples*
|
| 746 |
The |getqflist()| and |getloclist()| functions can be used to get the various
|
| 747 |
+
attributes of a quickfix and location list respectively. Some examples for
|
| 748 |
using these functions are below:
|
| 749 |
>
|
| 750 |
" get the title of the current quickfix list
|
|
|
|
| 810 |
<
|
| 811 |
*setqflist-examples*
|
| 812 |
The |setqflist()| and |setloclist()| functions can be used to set the various
|
| 813 |
+
attributes of a quickfix and location list respectively. Some examples for
|
| 814 |
using these functions are below:
|
| 815 |
>
|
| 816 |
" create an empty quickfix list with a title and a context
|
|
|
|
| 894 |
error list 3 of 3; 15 errors :grep ex_help *.c ~
|
| 895 |
|
| 896 |
When [count] is given, then the count'th quickfix
|
| 897 |
+
list is made the current list. Example: >
|
| 898 |
" Make the 4th quickfix list current
|
| 899 |
:4chistory
|
| 900 |
<
|
|
|
|
| 911 |
|
| 912 |
To get the number of lists in the quickfix and location list stack, you can
|
| 913 |
use the |getqflist()| and |getloclist()| functions respectively with the list
|
| 914 |
+
number set to the special value '$'. Examples: >
|
| 915 |
echo getqflist({'nr' : '$'}).nr
|
| 916 |
echo getloclist(3, {'nr' : '$'}).nr
|
| 917 |
To get the number of the current list in the stack: >
|
|
|
|
| 1067 |
buffer are abandoned.
|
| 1068 |
|
| 1069 |
'f' When the 'f' flag is specified, fuzzy string
|
| 1070 |
+
matching is used to find matching lines. In this
|
| 1071 |
case, {pattern} is treated as a literal string
|
| 1072 |
instead of a regular expression. See
|
| 1073 |
|fuzzy-matching| for more information about fuzzy
|
|
|
|
| 1182 |
whatever options your "grep" supports.
|
| 1183 |
|
| 1184 |
By default, :grep invokes grep with the -n option (show file and line
|
| 1185 |
+
numbers). You can change this with the 'grepprg' option. You will need to
|
| 1186 |
+
set 'grepprg' if:
|
| 1187 |
|
| 1188 |
a) You are using a program that isn't called "grep"
|
| 1189 |
b) You have to call grep with a full path
|
|
|
|
| 1283 |
|
| 1284 |
CPPCHECK *quickfix-cppcheck* *compiler-cppcheck*
|
| 1285 |
|
| 1286 |
+
Use g/b:`c_cppcheck_params` to set cppcheck parameters. The global
|
| 1287 |
settings by default include
|
| 1288 |
|
| 1289 |
- `--verbose`: Enables verbose output.
|
|
|
|
| 1298 |
ensure Cppcheck treats the file as C++.
|
| 1299 |
|
| 1300 |
If compile_commands.json is present in the current directory, it is added as a
|
| 1301 |
+
`--project` parameter to the command line. Otherwise, by default the
|
| 1302 |
+
directories in &path are passed as include directories. These can be set by
|
| 1303 |
+
g/b:`c_cppcheck_includes` as a list of `-I` flags. Tim Pope's vim-apathy
|
| 1304 |
+
plug-in [0] can expand &path. To also append the folders in a git repo use >
|
| 1305 |
|
| 1306 |
let &l:path = join(systemlist('git ls-tree -d --name-only -r HEAD'), ',')
|
| 1307 |
|
|
|
|
| 1309 |
|
| 1310 |
DOTNET *compiler-dotnet*
|
| 1311 |
|
| 1312 |
+
The .NET CLI compiler outputs both errors and warnings by default. The output
|
| 1313 |
may be limited to include only errors, by setting the g:dotnet_errors_only
|
| 1314 |
variable to |v:true|.
|
| 1315 |
|
| 1316 |
+
The associated project name is included in each error and warning. To
|
| 1317 |
+
suppress the project name, set the g:dotnet_show_project_file variable to
|
| 1318 |
+
|v:false|.
|
| 1319 |
|
| 1320 |
Example: limit output to only display errors, and suppress the project name: >
|
| 1321 |
let dotnet_errors_only = v:true
|
|
|
|
| 1602 |
make, say :make html or :make pdf.
|
| 1603 |
|
| 1604 |
Additional arguments can be passed to groff by setting them in
|
| 1605 |
+
`b:groff_compiler_args` or `g:groff_compiler_args`. The `language` argument
|
| 1606 |
passed to groff is set using 'spelllang'; it can be overridden by setting
|
| 1607 |
+
`b:groff_compiler_lang`. The default encoding is `UTF-8` and can be changed
|
| 1608 |
by setting `b:groff_compiler_encoding` or `g:groff_compiler_encoding`.
|
| 1609 |
|
| 1610 |
PANDOC *quickfix-pandoc* *compiler-pandoc*
|
|
|
|
| 1692 |
uses make command if possible. If the compiler finds a file named "Makefile"
|
| 1693 |
or "makefile" in the current directory, it supposes that you want to process
|
| 1694 |
your *TeX files with make, and the makefile does the right work. In this case
|
| 1695 |
+
compiler sets 'errorformat' for *TeX output and leaves 'makeprg' untouched.
|
| 1696 |
+
If neither "Makefile" nor "makefile" is found, the compiler will not use make.
|
| 1697 |
You can force the compiler to ignore makefiles by defining
|
| 1698 |
b:tex_ignore_makefile or g:tex_ignore_makefile variable (they are checked for
|
| 1699 |
existence only).
|
|
|
|
| 1733 |
|
| 1734 |
TYPST COMPILER *compiler-typst*
|
| 1735 |
|
| 1736 |
+
Vim includes a compiler plugin for Typst files. This compiler is enabled
|
| 1737 |
automatically in Typst buffers by the Typst filetype plugin |ft-typst-plugin|.
|
| 1738 |
Run |:make| to compile the current Typst file.
|
| 1739 |
|
| 1740 |
*g:typst_cmd*
|
| 1741 |
+
By default Vim will use "typst" as the command to run the Typst compiler.
|
| 1742 |
+
This can be changed by setting the |g:typst_cmd| variable: >
|
| 1743 |
let g:typst_cmd = "/path/to/other/command"
|
| 1744 |
|
| 1745 |
=============================================================================
|
|
|
|
| 1826 |
to indicate the column of the error. This is to be used in a multi-line error
|
| 1827 |
message. See |errorformat-javac| for a useful example.
|
| 1828 |
|
| 1829 |
+
The "%s" conversion specifies the text to search for, to locate the error
|
| 1830 |
+
line. The text is used as a literal string. The anchors "^" and "$" are
|
| 1831 |
+
added to the text to locate the error line exactly matching the search text
|
| 1832 |
+
and the text is prefixed with the "\V" atom to make it "very nomagic". The
|
| 1833 |
+
"%s" conversion can be used to locate lines without a line number in the error
|
| 1834 |
output. Like the output of the "grep" shell command.
|
| 1835 |
When the pattern is present the line number will not be used.
|
| 1836 |
|
|
|
|
| 2021 |
%~ The single '~' character.
|
| 2022 |
When using character classes in expressions (see |/\i| for an overview),
|
| 2023 |
terms containing the "\+" quantifier can be written in the scanf() "%*"
|
| 2024 |
+
notation. Example: "%\\d%\\+" ("\d\+", "any number") is equivalent to
|
| 2025 |
+
"%*\\d".
|
| 2026 |
Important note: The \(...\) grouping of sub-matches can not be used in format
|
| 2027 |
specifications because it is reserved for internal conversions.
|
| 2028 |
|
|
|
|
| 2230 |
In English, that sed script:
|
| 2231 |
- Changes single tabs to single spaces and
|
| 2232 |
- Moves the line with the filename, line number, error message to just after
|
| 2233 |
+
the pointer line. That way, the unused error text between doesn't break
|
| 2234 |
vim's notion of a "multi-line message" and also doesn't force us to include
|
| 2235 |
it as a "continuation of a multi-line message."
|
| 2236 |
|
|
|
|
| 2359 |
For some quickfix/location lists, the displayed text needs to be customized.
|
| 2360 |
For example, if only the filename is present for a quickfix entry, then the
|
| 2361 |
two "|" field separator characters after the filename are not needed. Another
|
| 2362 |
+
use case is to customize the path displayed for a filename. By default, the
|
| 2363 |
complete path (which may be too long) is displayed for files which are not
|
| 2364 |
+
under the current directory tree. The file path may need to be simplified to
|
| 2365 |
+
a common parent directory.
|
| 2366 |
|
| 2367 |
The displayed text can be customized by setting the 'quickfixtextfunc' option
|
| 2368 |
to a Vim function. This function will be called with a dict argument and
|
| 2369 |
should return a List of strings to be displayed in the quickfix or location
|
| 2370 |
+
list window. The dict argument will have the following fields:
|
| 2371 |
|
| 2372 |
quickfix set to 1 when called for a quickfix list and 0 when called for
|
| 2373 |
a location list.
|
| 2374 |
winid for a location list, set to the id of the window with the
|
| 2375 |
+
location list. For a quickfix list, set to 0. Can be used in
|
| 2376 |
getloclist() to get the location list entry.
|
| 2377 |
id quickfix or location list identifier
|
| 2378 |
start_idx index of the first entry for which text should be returned
|
| 2379 |
end_idx index of the last entry for which text should be returned
|
| 2380 |
|
| 2381 |
The function should return a single line of text to display in the quickfix
|
| 2382 |
+
window for each entry from start_idx to end_idx. The function can obtain
|
| 2383 |
information about the entries using the |getqflist()| function and specifying
|
| 2384 |
+
the quickfix list identifier "id". For a location list, getloclist() function
|
| 2385 |
+
can be used with the "winid" argument. If an empty list is returned, then the
|
| 2386 |
+
default format is used to display all the entries. If an item in the returned
|
| 2387 |
list is an empty string, then the default format is used to display the
|
| 2388 |
corresponding entry.
|
| 2389 |
|
| 2390 |
If a quickfix or location list specific customization is needed, then the
|
| 2391 |
'quickfixtextfunc' attribute of the list can be set using the |setqflist()| or
|
| 2392 |
+
|setloclist()| function. This overrides the global 'quickfixtextfunc' option.
|
| 2393 |
|
| 2394 |
The example below displays the list of old files (|v:oldfiles|) in a quickfix
|
| 2395 |
+
window. As there is no line, column number and error text information
|
| 2396 |
associated with each entry, the 'quickfixtextfunc' function returns only the
|
| 2397 |
filename.
|
| 2398 |
Example: >
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*recover.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -88,7 +88,7 @@ The 'swapfile' option can be reset to avoid creating a swapfile. And the
|
|
| 88 |
|:noswapfile| modifier can be used to not create a swapfile for a new buffer.
|
| 89 |
|
| 90 |
:nos[wapfile] {command} *:nos* *:noswapfile*
|
| 91 |
-
Execute {command}.
|
| 92 |
buffer, it will be loaded without creating a swapfile and the
|
| 93 |
'swapfile' option will be reset. If a buffer already had a
|
| 94 |
swapfile it is not removed and 'swapfile' is not reset.
|
|
|
|
| 1 |
+
*recover.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 88 |
|:noswapfile| modifier can be used to not create a swapfile for a new buffer.
|
| 89 |
|
| 90 |
:nos[wapfile] {command} *:nos* *:noswapfile*
|
| 91 |
+
Execute {command}. If it contains a command that loads a new
|
| 92 |
buffer, it will be loaded without creating a swapfile and the
|
| 93 |
'swapfile' option will be reset. If a buffer already had a
|
| 94 |
swapfile it is not removed and 'swapfile' is not reset.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*repeat.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -86,7 +86,7 @@ line is aborted and the global command continues with the next marked or
|
|
| 86 |
unmarked line.
|
| 87 |
*E147*
|
| 88 |
When the command is used recursively, it only works on one line. Giving a
|
| 89 |
-
range is then not allowed.
|
| 90 |
pattern and do not match another pattern: >
|
| 91 |
:g/found/v/notfound/{cmd}
|
| 92 |
This first finds all lines containing "found", but only executes {cmd} when
|
|
@@ -157,18 +157,18 @@ q Stops recording. (Implementation note: The 'q' that
|
|
| 157 |
@@ Repeat the previous @{0-9a-z":*} [count] times.
|
| 158 |
|
| 159 |
*:@*
|
| 160 |
-
:[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an
|
| 161 |
-
command. First set cursor at line [addr] (default
|
| 162 |
-
current line). When the last line in the register
|
| 163 |
-
not have a <CR> it will be added automatically
|
| 164 |
-
the 'e' flag is present in 'cpoptions'.
|
| 165 |
For ":@=" the last used expression is used. The
|
| 166 |
result of evaluating the expression is executed as an
|
| 167 |
Ex command.
|
| 168 |
Mappings are not recognized in these commands.
|
| 169 |
When the |line-continuation| character (\) is present
|
| 170 |
at the beginning of a line in a linewise register,
|
| 171 |
-
then it is combined with the previous line.
|
| 172 |
useful for yanking and executing parts of a Vim
|
| 173 |
script.
|
| 174 |
Future: Will execute the register for each line in the
|
|
@@ -206,7 +206,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
|
| 206 |
|
| 207 |
When sourcing commands from the current buffer, the
|
| 208 |
same script-ID |<SID>| is used even if the buffer is
|
| 209 |
-
sourced multiple times.
|
| 210 |
than once, then the functions in the buffer are
|
| 211 |
defined again.
|
| 212 |
|
|
@@ -226,9 +226,9 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
|
| 226 |
This works like the range started with the
|
| 227 |
":vim9script noclear" command. The "++clear" argument
|
| 228 |
can be used to clear the script-local variables and
|
| 229 |
-
functions before sourcing the script.
|
| 230 |
the range started with the `:vim9script` command
|
| 231 |
-
without the "noclear" argument.
|
| 232 |
more information.
|
| 233 |
Examples: >
|
| 234 |
:4,5source
|
|
@@ -390,7 +390,7 @@ For writing a Vim script, see chapter 41 of the user manual |usr_41.txt|.
|
|
| 390 |
to use ":scriptencoding utf-8" then.
|
| 391 |
|
| 392 |
If you set the 'encoding' option in your |.vimrc|,
|
| 393 |
-
`:scriptencoding` must be placed after that.
|
| 394 |
set encoding=utf-8
|
| 395 |
scriptencoding utf-8
|
| 396 |
<
|
|
@@ -615,8 +615,8 @@ advantages over normal plugins:
|
|
| 615 |
|
| 616 |
Using a package and loading automatically ~
|
| 617 |
|
| 618 |
-
Let's assume your Vim files are in the "~/.vim" directory and you want to add
|
| 619 |
-
package from a zip archive "/tmp/foopack.zip": >
|
| 620 |
% mkdir -p ~/.vim/pack/foo
|
| 621 |
% cd ~/.vim/pack/foo
|
| 622 |
% unzip /tmp/foopack.zip
|
|
@@ -647,9 +647,9 @@ find the syntax/some.vim file, because its directory is in 'runtimepath'.
|
|
| 647 |
|
| 648 |
Vim will also load ftdetect files, if there are any.
|
| 649 |
|
| 650 |
-
Note that the files under "pack/foo/opt" are not loaded automatically, only
|
| 651 |
-
ones under "pack/foo/start". See |pack-add| below for how the "opt"
|
| 652 |
-
is used.
|
| 653 |
|
| 654 |
Loading packages automatically will not happen if loading plugins is disabled,
|
| 655 |
see |load-plugins|.
|
|
@@ -725,8 +725,8 @@ This assumes you write one or more plugins that you distribute as a package.
|
|
| 725 |
|
| 726 |
If you have two unrelated plugins you would use two packages, so that Vim
|
| 727 |
users can choose what they include or not. Or you can decide to use one
|
| 728 |
-
package with optional plugins, and tell the user to add the preferred ones
|
| 729 |
-
`:packadd`.
|
| 730 |
|
| 731 |
Decide how you want to distribute the package. You can create an archive or
|
| 732 |
you could use a repository. An archive can be used by more users, but is a
|
|
@@ -790,7 +790,7 @@ Where:
|
|
| 790 |
|
| 791 |
The directory structure where the message translation files should be placed
|
| 792 |
is (from the top-level directory of the package):
|
| 793 |
-
"lang/<lang_id>/LC_MESSAGES".
|
| 794 |
This function needs to be called only once during the initialization of the
|
| 795 |
plugin.
|
| 796 |
Once this is done, the |gettext()| function can be used to retrieve translated
|
|
@@ -818,27 +818,28 @@ PLUGPACKAGE A variable containing the name of the package that we
|
|
| 818 |
|gettext()| functions, for example, "foobar".
|
| 819 |
PO_PLUG_INPUTLIST A variable containing scripts that have strings
|
| 820 |
to translate, i.e. where we specified the |gettext()|
|
| 821 |
-
function.
|
| 822 |
-
or relative path.
|
|
|
|
| 823 |
use blanks to separate scripts.
|
| 824 |
POT_PLUGPACKAGE_PATH A variable containing the directory where the prepared
|
| 825 |
-
POT file will be saved.
|
| 826 |
-
if no directory is specified, then the POT
|
| 827 |
-
be placed in the "src/po" directory.
|
| 828 |
VIMPROG A variable containing a directory with a working Vim.
|
| 829 |
If the Vim editor is already built and installed, and
|
| 830 |
is contained in the $PATH environment variable,
|
| 831 |
then you can specify just the name of the vim
|
| 832 |
executable.
|
| 833 |
-
{package}.pot This is the Target.
|
| 834 |
the package, for example, "foobar" with the addition
|
| 835 |
of the .pot extension.
|
| 836 |
Once a POT file is created, its contents are copied into separate PO files for
|
| 837 |
each language for which the translation will be prepared.
|
| 838 |
|
| 839 |
When the translation is finished, it is necessary to convert the PO files into
|
| 840 |
-
binary MO-files format and place these MO-files into the "lang/" directory,
|
| 841 |
-
structure of which we created earlier.
|
| 842 |
To do this, run the following commands:
|
| 843 |
>
|
| 844 |
cd ~/forkvim/src/po
|
|
@@ -851,15 +852,16 @@ Where:
|
|
| 851 |
PLUGPACKAGE A variable containing the name of the package that we
|
| 852 |
specified in the |bindtextdomain()| and |gettext()|
|
| 853 |
functions, for example, "foobar".
|
| 854 |
-
PO_PLUGPACKAGE A variable containing a PO file.
|
| 855 |
-
with an absolute or relative path.
|
| 856 |
-
"~/myproject/translate/en.po"
|
| 857 |
MO_PLUGPACKAGE_PATH A variable containing the structure of the "lang/"
|
| 858 |
directory, where the file with translations will be
|
| 859 |
-
placed, for example, "foobar.mo".
|
| 860 |
-
a required variable, if the directory is not
|
| 861 |
-
the MO file will be saved in the "src/po"
|
| 862 |
-
|
|
|
|
| 863 |
the package, for example, "foobar" with the addition
|
| 864 |
of the .mo extension.
|
| 865 |
|
|
@@ -978,7 +980,7 @@ And the PO file in German:
|
|
| 978 |
msgstr "Alle Dateien (*)\t*\n"~
|
| 979 |
|
| 980 |
Now convert these files into MO files so that |gettext()| can display message
|
| 981 |
-
translations.
|
| 982 |
will put the MO files in the "lang/" directory of the Vim editor.
|
| 983 |
Type the following commands:
|
| 984 |
>
|
|
@@ -998,7 +1000,7 @@ Type the following commands:
|
|
| 998 |
That's it, the translations are ready and you can see the plugin's messages
|
| 999 |
in your native language.
|
| 1000 |
|
| 1001 |
-
Let's also try to translate a plugin package.
|
| 1002 |
contains several scripts containing strings that need to be translated.
|
| 1003 |
For example, let's translate the "netrw" package into Japanese.
|
| 1004 |
For this example, we will translate only a few lines from this package.
|
|
@@ -1096,7 +1098,7 @@ plug-in packages.
|
|
| 1096 |
|
| 1097 |
Dependencies between plugins ~
|
| 1098 |
*packload-two-steps*
|
| 1099 |
-
Suppose you have two plugins that depend on the same functionality.
|
| 1100 |
put the common functionality in an autoload directory, so that it will be
|
| 1101 |
found automatically. Your package would have these files:
|
| 1102 |
|
|
@@ -1284,7 +1286,7 @@ DEFINING BREAKPOINTS
|
|
| 1284 |
|
| 1285 |
:breaka[dd] expr {expression}
|
| 1286 |
Sets a breakpoint, that will break whenever the {expression}
|
| 1287 |
-
evaluates to a different value.
|
| 1288 |
:breakadd expr g:lnum
|
| 1289 |
< Will break, whenever the global variable lnum changes.
|
| 1290 |
|
|
@@ -1399,7 +1401,7 @@ For example, to profile the one_script.vim script file: >
|
|
| 1399 |
|
| 1400 |
:prof[ile] stop
|
| 1401 |
Write the collected profiling information to the logfile and
|
| 1402 |
-
stop profiling.
|
| 1403 |
clear the profiling statistics and start profiling again.
|
| 1404 |
|
| 1405 |
:prof[ile] pause
|
|
@@ -1431,8 +1433,8 @@ For example, to profile the one_script.vim script file: >
|
|
| 1431 |
collect the profiling statistics.
|
| 1432 |
|
| 1433 |
:profd[el] ... *:profd* *:profdel*
|
| 1434 |
-
Stop profiling for the arguments specified.
|
| 1435 |
-
for the arguments.
|
| 1436 |
profdel func MyFunc
|
| 1437 |
profdel file MyScript.vim
|
| 1438 |
profdel here
|
|
@@ -1480,9 +1482,9 @@ Profiling should give a good indication of where time is spent, but keep in
|
|
| 1480 |
mind there are various things that may clobber the results:
|
| 1481 |
|
| 1482 |
- The accuracy of the time measured depends on the gettimeofday(), or
|
| 1483 |
-
clock_gettime() if available, system function.
|
| 1484 |
-
1/100 second to nanoseconds.
|
| 1485 |
-
nanoseconds, otherwise microseconds. You can use `has("prof_nsec")`.
|
| 1486 |
|
| 1487 |
- Real elapsed time is measured, if other processes are busy they may cause
|
| 1488 |
delays at unpredictable moments. You may want to run the profiling several
|
|
|
|
| 1 |
+
*repeat.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 86 |
unmarked line.
|
| 87 |
*E147*
|
| 88 |
When the command is used recursively, it only works on one line. Giving a
|
| 89 |
+
range is then not allowed. This is useful to find all lines that match a
|
| 90 |
pattern and do not match another pattern: >
|
| 91 |
:g/found/v/notfound/{cmd}
|
| 92 |
This first finds all lines containing "found", but only executes {cmd} when
|
|
|
|
| 157 |
@@ Repeat the previous @{0-9a-z":*} [count] times.
|
| 158 |
|
| 159 |
*:@*
|
| 160 |
+
:[addr]@{0-9a-z".=*+} Execute the contents of register {0-9a-z".=*+} as an
|
| 161 |
+
Ex command. First set cursor at line [addr] (default
|
| 162 |
+
is current line). When the last line in the register
|
| 163 |
+
does not have a <CR> it will be added automatically
|
| 164 |
+
when the 'e' flag is present in 'cpoptions'.
|
| 165 |
For ":@=" the last used expression is used. The
|
| 166 |
result of evaluating the expression is executed as an
|
| 167 |
Ex command.
|
| 168 |
Mappings are not recognized in these commands.
|
| 169 |
When the |line-continuation| character (\) is present
|
| 170 |
at the beginning of a line in a linewise register,
|
| 171 |
+
then it is combined with the previous line. This is
|
| 172 |
useful for yanking and executing parts of a Vim
|
| 173 |
script.
|
| 174 |
Future: Will execute the register for each line in the
|
|
|
|
| 206 |
|
| 207 |
When sourcing commands from the current buffer, the
|
| 208 |
same script-ID |<SID>| is used even if the buffer is
|
| 209 |
+
sourced multiple times. If a buffer is sourced more
|
| 210 |
than once, then the functions in the buffer are
|
| 211 |
defined again.
|
| 212 |
|
|
|
|
| 226 |
This works like the range started with the
|
| 227 |
":vim9script noclear" command. The "++clear" argument
|
| 228 |
can be used to clear the script-local variables and
|
| 229 |
+
functions before sourcing the script. This works like
|
| 230 |
the range started with the `:vim9script` command
|
| 231 |
+
without the "noclear" argument. See |vim9-reload| for
|
| 232 |
more information.
|
| 233 |
Examples: >
|
| 234 |
:4,5source
|
|
|
|
| 390 |
to use ":scriptencoding utf-8" then.
|
| 391 |
|
| 392 |
If you set the 'encoding' option in your |.vimrc|,
|
| 393 |
+
`:scriptencoding` must be placed after that. E.g.: >
|
| 394 |
set encoding=utf-8
|
| 395 |
scriptencoding utf-8
|
| 396 |
<
|
|
|
|
| 615 |
|
| 616 |
Using a package and loading automatically ~
|
| 617 |
|
| 618 |
+
Let's assume your Vim files are in the "~/.vim" directory and you want to add
|
| 619 |
+
a package from a zip archive "/tmp/foopack.zip": >
|
| 620 |
% mkdir -p ~/.vim/pack/foo
|
| 621 |
% cd ~/.vim/pack/foo
|
| 622 |
% unzip /tmp/foopack.zip
|
|
|
|
| 647 |
|
| 648 |
Vim will also load ftdetect files, if there are any.
|
| 649 |
|
| 650 |
+
Note that the files under "pack/foo/opt" are not loaded automatically, only
|
| 651 |
+
the ones under "pack/foo/start". See |pack-add| below for how the "opt"
|
| 652 |
+
directory is used.
|
| 653 |
|
| 654 |
Loading packages automatically will not happen if loading plugins is disabled,
|
| 655 |
see |load-plugins|.
|
|
|
|
| 725 |
|
| 726 |
If you have two unrelated plugins you would use two packages, so that Vim
|
| 727 |
users can choose what they include or not. Or you can decide to use one
|
| 728 |
+
package with optional plugins, and tell the user to add the preferred ones
|
| 729 |
+
with `:packadd`.
|
| 730 |
|
| 731 |
Decide how you want to distribute the package. You can create an archive or
|
| 732 |
you could use a repository. An archive can be used by more users, but is a
|
|
|
|
| 790 |
|
| 791 |
The directory structure where the message translation files should be placed
|
| 792 |
is (from the top-level directory of the package):
|
| 793 |
+
"lang/<lang_id>/LC_MESSAGES". For the format of <lang_id> see |multi-lang|.
|
| 794 |
This function needs to be called only once during the initialization of the
|
| 795 |
plugin.
|
| 796 |
Once this is done, the |gettext()| function can be used to retrieve translated
|
|
|
|
| 818 |
|gettext()| functions, for example, "foobar".
|
| 819 |
PO_PLUG_INPUTLIST A variable containing scripts that have strings
|
| 820 |
to translate, i.e. where we specified the |gettext()|
|
| 821 |
+
function. Scripts are specified with an absolute
|
| 822 |
+
or relative path. Example:
|
| 823 |
+
start/foobar/plugin/bar.vim
|
| 824 |
use blanks to separate scripts.
|
| 825 |
POT_PLUGPACKAGE_PATH A variable containing the directory where the prepared
|
| 826 |
+
POT file will be saved. This is not a required
|
| 827 |
+
variable, if no directory is specified, then the POT
|
| 828 |
+
file will be placed in the "src/po" directory.
|
| 829 |
VIMPROG A variable containing a directory with a working Vim.
|
| 830 |
If the Vim editor is already built and installed, and
|
| 831 |
is contained in the $PATH environment variable,
|
| 832 |
then you can specify just the name of the vim
|
| 833 |
executable.
|
| 834 |
+
{package}.pot This is the Target. It is specified as the name of
|
| 835 |
the package, for example, "foobar" with the addition
|
| 836 |
of the .pot extension.
|
| 837 |
Once a POT file is created, its contents are copied into separate PO files for
|
| 838 |
each language for which the translation will be prepared.
|
| 839 |
|
| 840 |
When the translation is finished, it is necessary to convert the PO files into
|
| 841 |
+
binary MO-files format and place these MO-files into the "lang/" directory,
|
| 842 |
+
the structure of which we created earlier.
|
| 843 |
To do this, run the following commands:
|
| 844 |
>
|
| 845 |
cd ~/forkvim/src/po
|
|
|
|
| 852 |
PLUGPACKAGE A variable containing the name of the package that we
|
| 853 |
specified in the |bindtextdomain()| and |gettext()|
|
| 854 |
functions, for example, "foobar".
|
| 855 |
+
PO_PLUGPACKAGE A variable containing a PO file. The file is
|
| 856 |
+
specified with an absolute or relative path. For
|
| 857 |
+
example, "~/myproject/translate/en.po"
|
| 858 |
MO_PLUGPACKAGE_PATH A variable containing the structure of the "lang/"
|
| 859 |
directory, where the file with translations will be
|
| 860 |
+
placed, for example, "foobar.mo". This is not
|
| 861 |
+
a required variable, if the directory is not
|
| 862 |
+
specified, the MO file will be saved in the "src/po"
|
| 863 |
+
directory.
|
| 864 |
+
{package}.mo This is the Target. It is specified as the name of
|
| 865 |
the package, for example, "foobar" with the addition
|
| 866 |
of the .mo extension.
|
| 867 |
|
|
|
|
| 980 |
msgstr "Alle Dateien (*)\t*\n"~
|
| 981 |
|
| 982 |
Now convert these files into MO files so that |gettext()| can display message
|
| 983 |
+
translations. Note that since this is not a specialized plugin package, we
|
| 984 |
will put the MO files in the "lang/" directory of the Vim editor.
|
| 985 |
Type the following commands:
|
| 986 |
>
|
|
|
|
| 1000 |
That's it, the translations are ready and you can see the plugin's messages
|
| 1001 |
in your native language.
|
| 1002 |
|
| 1003 |
+
Let's also try to translate a plugin package. For example, when a package
|
| 1004 |
contains several scripts containing strings that need to be translated.
|
| 1005 |
For example, let's translate the "netrw" package into Japanese.
|
| 1006 |
For this example, we will translate only a few lines from this package.
|
|
|
|
| 1098 |
|
| 1099 |
Dependencies between plugins ~
|
| 1100 |
*packload-two-steps*
|
| 1101 |
+
Suppose you have two plugins that depend on the same functionality. You can
|
| 1102 |
put the common functionality in an autoload directory, so that it will be
|
| 1103 |
found automatically. Your package would have these files:
|
| 1104 |
|
|
|
|
| 1286 |
|
| 1287 |
:breaka[dd] expr {expression}
|
| 1288 |
Sets a breakpoint, that will break whenever the {expression}
|
| 1289 |
+
evaluates to a different value. Example: >
|
| 1290 |
:breakadd expr g:lnum
|
| 1291 |
< Will break, whenever the global variable lnum changes.
|
| 1292 |
|
|
|
|
| 1401 |
|
| 1402 |
:prof[ile] stop
|
| 1403 |
Write the collected profiling information to the logfile and
|
| 1404 |
+
stop profiling. You can use the `:profile start` command to
|
| 1405 |
clear the profiling statistics and start profiling again.
|
| 1406 |
|
| 1407 |
:prof[ile] pause
|
|
|
|
| 1433 |
collect the profiling statistics.
|
| 1434 |
|
| 1435 |
:profd[el] ... *:profd* *:profdel*
|
| 1436 |
+
Stop profiling for the arguments specified. See |:breakdel|
|
| 1437 |
+
for the arguments. Examples: >
|
| 1438 |
profdel func MyFunc
|
| 1439 |
profdel file MyScript.vim
|
| 1440 |
profdel here
|
|
|
|
| 1482 |
mind there are various things that may clobber the results:
|
| 1483 |
|
| 1484 |
- The accuracy of the time measured depends on the gettimeofday(), or
|
| 1485 |
+
clock_gettime() if available, system function. The accuracy ranges from
|
| 1486 |
+
1/100 second to nanoseconds. With clock_gettime() the times are displayed
|
| 1487 |
+
in nanoseconds, otherwise microseconds. You can use `has("prof_nsec")`.
|
| 1488 |
|
| 1489 |
- Real elapsed time is measured, if other processes are busy they may cause
|
| 1490 |
delays at unpredictable moments. You may want to run the profiling several
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*sign.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Gordon Prieur
|
|
@@ -56,20 +56,20 @@ The color of the column is set with the SignColumn highlight group
|
|
| 56 |
If 'cursorline' is enabled, then the CursorLineSign highlight group is used
|
| 57 |
|hl-CursorLineSign|.
|
| 58 |
*sign-identifier*
|
| 59 |
-
Each placed sign is identified by a number called the sign identifier.
|
| 60 |
-
identifier is used to jump to the sign or to remove the sign.
|
| 61 |
is assigned when placing the sign using the |:sign-place| command or the
|
| 62 |
-
|sign_place()| function.
|
| 63 |
multiple placed signs use the same identifier, then jumping to or removing a
|
| 64 |
-
sign becomes unpredictable.
|
| 65 |
-
be used.
|
| 66 |
to allocate the next available identifier.
|
| 67 |
|
| 68 |
*sign-group*
|
| 69 |
Each placed sign can be assigned to either the global group or a named group.
|
| 70 |
When placing a sign, if a group name is not supplied, or an empty string is
|
| 71 |
-
used, then the sign is placed in the global group.
|
| 72 |
-
placed in the named group.
|
| 73 |
sign group allows Vim plugins to use unique signs without interfering with
|
| 74 |
other plugins using signs.
|
| 75 |
|
|
@@ -78,9 +78,9 @@ Other signs will not show in a popup window. The group name "PopUpMenu" is
|
|
| 78 |
used by popup windows where 'cursorline' is set.
|
| 79 |
|
| 80 |
*sign-priority*
|
| 81 |
-
Each placed sign is assigned a priority value.
|
| 82 |
on the same line, the attributes of the sign with the highest priority is used
|
| 83 |
-
independently of the sign group.
|
| 84 |
value can be changed for different signs by specifying a different value at
|
| 85 |
definition time. The priority is assigned at the time of placing a sign.
|
| 86 |
|
|
@@ -213,8 +213,8 @@ See |sign_place()| for the equivalent Vim script function.
|
|
| 213 |
By default, the sign is placed in the global sign group.
|
| 214 |
|
| 215 |
By default, the sign is assigned a default priority of 10,
|
| 216 |
-
unless specified otherwise by the sign definition. To assign
|
| 217 |
-
different priority value, use "priority={prio}" to specify a
|
| 218 |
value. The priority is used to determine the sign that is
|
| 219 |
displayed when multiple signs are placed on the same line.
|
| 220 |
|
|
@@ -312,7 +312,8 @@ See |sign_unplace()| for the equivalent Vim script function.
|
|
| 312 |
all the files it appears in.
|
| 313 |
|
| 314 |
:sig[n] unplace *
|
| 315 |
-
Remove all placed signs in the global group from all the
|
|
|
|
| 316 |
|
| 317 |
:sig[n] unplace * group={group}
|
| 318 |
Remove all placed signs in group {group} from all the files.
|
|
@@ -321,8 +322,8 @@ See |sign_unplace()| for the equivalent Vim script function.
|
|
| 321 |
Remove all placed signs in all the groups from all the files.
|
| 322 |
|
| 323 |
:sig[n] unplace
|
| 324 |
-
Remove a placed sign at the cursor position.
|
| 325 |
-
are placed in the line, then only one is removed.
|
| 326 |
|
| 327 |
:sig[n] unplace group={group}
|
| 328 |
Remove a placed sign in group {group} at the cursor
|
|
@@ -380,7 +381,7 @@ See |sign_jump()| for the equivalent Vim script function.
|
|
| 380 |
|
| 381 |
:sig[n] jump {id} [buffer={nr}] *E934*
|
| 382 |
Same, but use buffer {nr}. This fails if buffer {nr} does not
|
| 383 |
-
have a name.
|
| 384 |
current buffer.
|
| 385 |
|
| 386 |
:sig[n] jump {id} group={group} [buffer={nr}]
|
|
@@ -448,7 +449,7 @@ sign_getdefined([{name}]) *sign_getdefined()*
|
|
| 448 |
This is similar to the |:sign-list| command.
|
| 449 |
|
| 450 |
If the {name} is not supplied, then a list of all the defined
|
| 451 |
-
signs is returned.
|
| 452 |
sign is returned.
|
| 453 |
|
| 454 |
Each list item in the returned value is a dictionary with the
|
|
@@ -491,15 +492,15 @@ sign_getplaced([{buf} [, {dict}]]) *sign_getplaced()*
|
|
| 491 |
|
| 492 |
If the optional buffer name {buf} is specified, then only the
|
| 493 |
list of signs placed in that buffer is returned. For the use
|
| 494 |
-
of {buf}, see |bufname()|.
|
| 495 |
the following entries:
|
| 496 |
group select only signs in this group
|
| 497 |
id select sign with this identifier
|
| 498 |
-
lnum select signs placed in this line.
|
| 499 |
of {lnum}, see |line()|.
|
| 500 |
If {group} is '*', then signs in all the groups including the
|
| 501 |
-
global group are returned.
|
| 502 |
-
empty string, then only signs in the global group are
|
| 503 |
returned. If no arguments are supplied, then signs in the
|
| 504 |
global group placed in all the buffers are returned.
|
| 505 |
See |sign-group|.
|
|
@@ -507,12 +508,12 @@ sign_getplaced([{buf} [, {dict}]]) *sign_getplaced()*
|
|
| 507 |
Each list item in the returned value is a dictionary with the
|
| 508 |
following entries:
|
| 509 |
bufnr number of the buffer with the sign
|
| 510 |
-
signs list of signs placed in {bufnr}.
|
| 511 |
item is a dictionary with the below listed
|
| 512 |
entries
|
| 513 |
|
| 514 |
The dictionary for each sign contains the following entries:
|
| 515 |
-
group sign group.
|
| 516 |
id identifier of the sign
|
| 517 |
lnum line number where the sign is placed
|
| 518 |
name name of the defined sign
|
|
@@ -559,7 +560,7 @@ sign_jump({id}, {group}, {buf}) *sign_jump()*
|
|
| 559 |
If {group} is an empty string, then the global group is used.
|
| 560 |
For the use of {buf}, see |bufname()|.
|
| 561 |
|
| 562 |
-
Returns the line number of the sign.
|
| 563 |
arguments are invalid.
|
| 564 |
|
| 565 |
Example: >
|
|
@@ -579,21 +580,21 @@ sign_place({id}, {group}, {name}, {buf} [, {dict}])
|
|
| 579 |
similar to the |:sign-place| command.
|
| 580 |
|
| 581 |
If the sign identifier {id} is zero, then a new identifier is
|
| 582 |
-
allocated. Otherwise the specified number is used.
|
| 583 |
-
the sign group name.
|
| 584 |
empty string. {group} functions as a namespace for {id}, thus
|
| 585 |
-
two groups can use the same IDs.
|
| 586 |
and |sign-group| for more information.
|
| 587 |
|
| 588 |
{name} refers to a defined sign.
|
| 589 |
-
{buf} refers to a buffer name or number.
|
| 590 |
values, see |bufname()|.
|
| 591 |
|
| 592 |
The optional {dict} argument supports the following entries:
|
| 593 |
lnum line number in the file or buffer
|
| 594 |
{buf} where the sign is to be placed.
|
| 595 |
For the accepted values, see |line()|.
|
| 596 |
-
priority priority of the sign.
|
| 597 |
|sign-priority| for more information.
|
| 598 |
|
| 599 |
If the optional {dict} is not specified, then it modifies the
|
|
@@ -630,35 +631,35 @@ sign_place({id}, {group}, {name}, {buf} [, {dict}])
|
|
| 630 |
sign_placelist({list}) *sign_placelist()*
|
| 631 |
Place one or more signs. This is similar to the
|
| 632 |
|sign_place()| function. The {list} argument specifies the
|
| 633 |
-
List of signs to place.
|
| 634 |
following sign attributes:
|
| 635 |
-
buffer Buffer name or number.
|
| 636 |
values, see |bufname()|.
|
| 637 |
-
group Sign group.
|
| 638 |
for {id}, thus two groups can use the same
|
| 639 |
-
IDs.
|
| 640 |
string, then the global group is used. See
|
| 641 |
|sign-group| for more information.
|
| 642 |
-
id Sign identifier.
|
| 643 |
then a new unique identifier is allocated.
|
| 644 |
-
Otherwise the specified number is used.
|
| 645 |
|sign-identifier| for more information.
|
| 646 |
lnum Line number in the buffer where the sign is to
|
| 647 |
-
be placed.
|
| 648 |
|line()|.
|
| 649 |
-
name Name of the sign to place.
|
| 650 |
for more information.
|
| 651 |
-
priority Priority of the sign.
|
| 652 |
placed on a line, the sign with the highest
|
| 653 |
-
priority is used.
|
| 654 |
default value of 10 is used, unless specified
|
| 655 |
-
otherwise by the sign definition.
|
| 656 |
|sign-priority| for more information.
|
| 657 |
|
| 658 |
If {id} refers to an existing sign, then the existing sign is
|
| 659 |
modified to use the specified {name} and/or {priority}.
|
| 660 |
|
| 661 |
-
Returns a List of sign identifiers.
|
| 662 |
sign, the corresponding list item is set to -1.
|
| 663 |
|
| 664 |
Examples: >
|
|
@@ -694,12 +695,12 @@ sign_placelist({list}) *sign_placelist()*
|
|
| 694 |
|
| 695 |
sign_undefine([{name}]) *sign_undefine()*
|
| 696 |
sign_undefine({list})
|
| 697 |
-
Deletes a previously defined sign {name}.
|
| 698 |
-
the |:sign-undefine| command.
|
| 699 |
deletes all the defined signs.
|
| 700 |
|
| 701 |
The one argument {list} can be used to undefine a list of
|
| 702 |
-
signs.
|
| 703 |
|
| 704 |
Returns 0 on success and -1 on failure. For the one argument
|
| 705 |
{list} call, returns a list of values one for each undefined
|
|
@@ -725,13 +726,13 @@ sign_unplace({group} [, {dict}]) *sign_unplace()*
|
|
| 725 |
Remove a previously placed sign in one or more buffers. This
|
| 726 |
is similar to the |:sign-unplace| command.
|
| 727 |
|
| 728 |
-
{group} is the sign group name.
|
| 729 |
use an empty string. If {group} is set to '*', then all the
|
| 730 |
groups including the global group are used.
|
| 731 |
The signs in {group} are selected based on the entries in
|
| 732 |
{dict}. The following optional entries in {dict} are
|
| 733 |
supported:
|
| 734 |
-
buffer buffer name or number.
|
| 735 |
id sign identifier
|
| 736 |
If {dict} is not supplied, then all the signs in {group} are
|
| 737 |
removed.
|
|
@@ -775,15 +776,15 @@ sign_unplacelist({list}) *sign_unplacelist()*
|
|
| 775 |
|
| 776 |
The {list} argument specifies the List of signs to remove.
|
| 777 |
Each list item is a dict with the following sign attributes:
|
| 778 |
-
buffer buffer name or number.
|
| 779 |
-
values, see |bufname()|.
|
| 780 |
then the specified sign is removed from all
|
| 781 |
the buffers.
|
| 782 |
-
group sign group name.
|
| 783 |
-
empty string, then the global sign group is
|
| 784 |
-
used.
|
| 785 |
including the global group are used.
|
| 786 |
-
id sign identifier.
|
| 787 |
the signs in the specified group are removed.
|
| 788 |
|
| 789 |
Returns a List where an entry is set to 0 if the corresponding
|
|
|
|
| 1 |
+
*sign.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Gordon Prieur
|
|
|
|
| 56 |
If 'cursorline' is enabled, then the CursorLineSign highlight group is used
|
| 57 |
|hl-CursorLineSign|.
|
| 58 |
*sign-identifier*
|
| 59 |
+
Each placed sign is identified by a number called the sign identifier. This
|
| 60 |
+
identifier is used to jump to the sign or to remove the sign. The identifier
|
| 61 |
is assigned when placing the sign using the |:sign-place| command or the
|
| 62 |
+
|sign_place()| function. Each sign identifier should be a unique number. If
|
| 63 |
multiple placed signs use the same identifier, then jumping to or removing a
|
| 64 |
+
sign becomes unpredictable. To avoid overlapping identifiers, sign groups can
|
| 65 |
+
be used. The |sign_place()| function can be called with a zero sign identifier
|
| 66 |
to allocate the next available identifier.
|
| 67 |
|
| 68 |
*sign-group*
|
| 69 |
Each placed sign can be assigned to either the global group or a named group.
|
| 70 |
When placing a sign, if a group name is not supplied, or an empty string is
|
| 71 |
+
used, then the sign is placed in the global group. Otherwise the sign is
|
| 72 |
+
placed in the named group. The sign identifier is unique within a group. The
|
| 73 |
sign group allows Vim plugins to use unique signs without interfering with
|
| 74 |
other plugins using signs.
|
| 75 |
|
|
|
|
| 78 |
used by popup windows where 'cursorline' is set.
|
| 79 |
|
| 80 |
*sign-priority*
|
| 81 |
+
Each placed sign is assigned a priority value. When multiple signs are placed
|
| 82 |
on the same line, the attributes of the sign with the highest priority is used
|
| 83 |
+
independently of the sign group. The default priority for a sign is 10, this
|
| 84 |
value can be changed for different signs by specifying a different value at
|
| 85 |
definition time. The priority is assigned at the time of placing a sign.
|
| 86 |
|
|
|
|
| 213 |
By default, the sign is placed in the global sign group.
|
| 214 |
|
| 215 |
By default, the sign is assigned a default priority of 10,
|
| 216 |
+
unless specified otherwise by the sign definition. To assign
|
| 217 |
+
a different priority value, use "priority={prio}" to specify a
|
| 218 |
value. The priority is used to determine the sign that is
|
| 219 |
displayed when multiple signs are placed on the same line.
|
| 220 |
|
|
|
|
| 312 |
all the files it appears in.
|
| 313 |
|
| 314 |
:sig[n] unplace *
|
| 315 |
+
Remove all placed signs in the global group from all the
|
| 316 |
+
files.
|
| 317 |
|
| 318 |
:sig[n] unplace * group={group}
|
| 319 |
Remove all placed signs in group {group} from all the files.
|
|
|
|
| 322 |
Remove all placed signs in all the groups from all the files.
|
| 323 |
|
| 324 |
:sig[n] unplace
|
| 325 |
+
Remove a placed sign at the cursor position. If multiple
|
| 326 |
+
signs are placed in the line, then only one is removed.
|
| 327 |
|
| 328 |
:sig[n] unplace group={group}
|
| 329 |
Remove a placed sign in group {group} at the cursor
|
|
|
|
| 381 |
|
| 382 |
:sig[n] jump {id} [buffer={nr}] *E934*
|
| 383 |
Same, but use buffer {nr}. This fails if buffer {nr} does not
|
| 384 |
+
have a name. If the buffer argument is not given, use the
|
| 385 |
current buffer.
|
| 386 |
|
| 387 |
:sig[n] jump {id} group={group} [buffer={nr}]
|
|
|
|
| 449 |
This is similar to the |:sign-list| command.
|
| 450 |
|
| 451 |
If the {name} is not supplied, then a list of all the defined
|
| 452 |
+
signs is returned. Otherwise the attribute of the specified
|
| 453 |
sign is returned.
|
| 454 |
|
| 455 |
Each list item in the returned value is a dictionary with the
|
|
|
|
| 492 |
|
| 493 |
If the optional buffer name {buf} is specified, then only the
|
| 494 |
list of signs placed in that buffer is returned. For the use
|
| 495 |
+
of {buf}, see |bufname()|. The optional {dict} can contain
|
| 496 |
the following entries:
|
| 497 |
group select only signs in this group
|
| 498 |
id select sign with this identifier
|
| 499 |
+
lnum select signs placed in this line. For the use
|
| 500 |
of {lnum}, see |line()|.
|
| 501 |
If {group} is '*', then signs in all the groups including the
|
| 502 |
+
global group are returned. If {group} is not supplied or is
|
| 503 |
+
an empty string, then only signs in the global group are
|
| 504 |
returned. If no arguments are supplied, then signs in the
|
| 505 |
global group placed in all the buffers are returned.
|
| 506 |
See |sign-group|.
|
|
|
|
| 508 |
Each list item in the returned value is a dictionary with the
|
| 509 |
following entries:
|
| 510 |
bufnr number of the buffer with the sign
|
| 511 |
+
signs list of signs placed in {bufnr}. Each list
|
| 512 |
item is a dictionary with the below listed
|
| 513 |
entries
|
| 514 |
|
| 515 |
The dictionary for each sign contains the following entries:
|
| 516 |
+
group sign group. Set to '' for the global group.
|
| 517 |
id identifier of the sign
|
| 518 |
lnum line number where the sign is placed
|
| 519 |
name name of the defined sign
|
|
|
|
| 560 |
If {group} is an empty string, then the global group is used.
|
| 561 |
For the use of {buf}, see |bufname()|.
|
| 562 |
|
| 563 |
+
Returns the line number of the sign. Returns -1 if the
|
| 564 |
arguments are invalid.
|
| 565 |
|
| 566 |
Example: >
|
|
|
|
| 580 |
similar to the |:sign-place| command.
|
| 581 |
|
| 582 |
If the sign identifier {id} is zero, then a new identifier is
|
| 583 |
+
allocated. Otherwise the specified number is used. {group}
|
| 584 |
+
is the sign group name. To use the global sign group, use an
|
| 585 |
empty string. {group} functions as a namespace for {id}, thus
|
| 586 |
+
two groups can use the same IDs. Refer to |sign-identifier|
|
| 587 |
and |sign-group| for more information.
|
| 588 |
|
| 589 |
{name} refers to a defined sign.
|
| 590 |
+
{buf} refers to a buffer name or number. For the accepted
|
| 591 |
values, see |bufname()|.
|
| 592 |
|
| 593 |
The optional {dict} argument supports the following entries:
|
| 594 |
lnum line number in the file or buffer
|
| 595 |
{buf} where the sign is to be placed.
|
| 596 |
For the accepted values, see |line()|.
|
| 597 |
+
priority priority of the sign. See
|
| 598 |
|sign-priority| for more information.
|
| 599 |
|
| 600 |
If the optional {dict} is not specified, then it modifies the
|
|
|
|
| 631 |
sign_placelist({list}) *sign_placelist()*
|
| 632 |
Place one or more signs. This is similar to the
|
| 633 |
|sign_place()| function. The {list} argument specifies the
|
| 634 |
+
List of signs to place. Each list item is a dict with the
|
| 635 |
following sign attributes:
|
| 636 |
+
buffer Buffer name or number. For the accepted
|
| 637 |
values, see |bufname()|.
|
| 638 |
+
group Sign group. {group} functions as a namespace
|
| 639 |
for {id}, thus two groups can use the same
|
| 640 |
+
IDs. If not specified or set to an empty
|
| 641 |
string, then the global group is used. See
|
| 642 |
|sign-group| for more information.
|
| 643 |
+
id Sign identifier. If not specified or zero,
|
| 644 |
then a new unique identifier is allocated.
|
| 645 |
+
Otherwise the specified number is used. See
|
| 646 |
|sign-identifier| for more information.
|
| 647 |
lnum Line number in the buffer where the sign is to
|
| 648 |
+
be placed. For the accepted values, see
|
| 649 |
|line()|.
|
| 650 |
+
name Name of the sign to place. See |sign_define()|
|
| 651 |
for more information.
|
| 652 |
+
priority Priority of the sign. When multiple signs are
|
| 653 |
placed on a line, the sign with the highest
|
| 654 |
+
priority is used. If not specified, the
|
| 655 |
default value of 10 is used, unless specified
|
| 656 |
+
otherwise by the sign definition. See
|
| 657 |
|sign-priority| for more information.
|
| 658 |
|
| 659 |
If {id} refers to an existing sign, then the existing sign is
|
| 660 |
modified to use the specified {name} and/or {priority}.
|
| 661 |
|
| 662 |
+
Returns a List of sign identifiers. If failed to place a
|
| 663 |
sign, the corresponding list item is set to -1.
|
| 664 |
|
| 665 |
Examples: >
|
|
|
|
| 695 |
|
| 696 |
sign_undefine([{name}]) *sign_undefine()*
|
| 697 |
sign_undefine({list})
|
| 698 |
+
Deletes a previously defined sign {name}. This is similar to
|
| 699 |
+
the |:sign-undefine| command. If {name} is not supplied, then
|
| 700 |
deletes all the defined signs.
|
| 701 |
|
| 702 |
The one argument {list} can be used to undefine a list of
|
| 703 |
+
signs. Each list item is the name of a sign.
|
| 704 |
|
| 705 |
Returns 0 on success and -1 on failure. For the one argument
|
| 706 |
{list} call, returns a list of values one for each undefined
|
|
|
|
| 726 |
Remove a previously placed sign in one or more buffers. This
|
| 727 |
is similar to the |:sign-unplace| command.
|
| 728 |
|
| 729 |
+
{group} is the sign group name. To use the global sign group,
|
| 730 |
use an empty string. If {group} is set to '*', then all the
|
| 731 |
groups including the global group are used.
|
| 732 |
The signs in {group} are selected based on the entries in
|
| 733 |
{dict}. The following optional entries in {dict} are
|
| 734 |
supported:
|
| 735 |
+
buffer buffer name or number. See |bufname()|.
|
| 736 |
id sign identifier
|
| 737 |
If {dict} is not supplied, then all the signs in {group} are
|
| 738 |
removed.
|
|
|
|
| 776 |
|
| 777 |
The {list} argument specifies the List of signs to remove.
|
| 778 |
Each list item is a dict with the following sign attributes:
|
| 779 |
+
buffer buffer name or number. For the accepted
|
| 780 |
+
values, see |bufname()|. If not specified,
|
| 781 |
then the specified sign is removed from all
|
| 782 |
the buffers.
|
| 783 |
+
group sign group name. If not specified or set to
|
| 784 |
+
an empty string, then the global sign group is
|
| 785 |
+
used. If set to '*', then all the groups
|
| 786 |
including the global group are used.
|
| 787 |
+
id sign identifier. If not specified, then all
|
| 788 |
the signs in the specified group are removed.
|
| 789 |
|
| 790 |
Returns a List where an entry is set to 0 if the corresponding
|
|
@@ -140,7 +140,7 @@ zuG Undo |zW| and |zG|, remove the word from the internal
|
|
| 140 |
|
| 141 |
There are no normal mode commands to mark words as
|
| 142 |
rare as this is a fairly uncommon command and all
|
| 143 |
-
intuitive commands for this are already taken.
|
| 144 |
want you can add mappings with e.g.: >
|
| 145 |
nnoremap z? :exe ':spellrare ' .. expand('<cWORD>')<CR>
|
| 146 |
nnoremap z/ :exe ':spellrare! ' .. expand('<cWORD>')<CR>
|
|
@@ -300,7 +300,7 @@ In a table:
|
|
| 300 |
|
| 301 |
*spell-cjk*
|
| 302 |
Chinese, Japanese and other East Asian characters are normally marked as
|
| 303 |
-
errors, because spell checking of these characters is not supported.
|
| 304 |
'spelllang' includes "cjk", these characters are not marked as errors. This
|
| 305 |
is useful when editing text with spell checking while some Asian words are
|
| 306 |
present.
|
|
@@ -507,8 +507,8 @@ Vim uses a binary file format for spelling. This greatly speeds up loading
|
|
| 507 |
the word list and keeps it small.
|
| 508 |
*.aff* *.dic* *Myspell*
|
| 509 |
You can create a Vim spell file from the .aff and .dic files that Myspell
|
| 510 |
-
uses. Myspell is used by OpenOffice.org and Mozilla.
|
| 511 |
-
files are zip files which contain the .aff and .dic files.
|
| 512 |
to find them here:
|
| 513 |
https://extensions.openoffice.org/en/search@f[0]=field_project_application%253A1&f[1]=field_project_tags%253A94.html
|
| 514 |
The older, OpenOffice 2 files may be used if this doesn't work:
|
|
@@ -842,8 +842,8 @@ starting with an upper-case letter.
|
|
| 842 |
|
| 843 |
When the word includes an upper-case letter, this means the upper-case letter
|
| 844 |
is required at this position. The same word with a lower-case letter at this
|
| 845 |
-
position will not match.
|
| 846 |
-
not match either.
|
| 847 |
|
| 848 |
The word with all upper-case characters will always be OK,
|
| 849 |
|
|
@@ -1182,9 +1182,10 @@ WORDS WITH A SLASH *spell-SLASH*
|
|
| 1182 |
|
| 1183 |
The slash is used in the .dic file to separate the basic word from the affix
|
| 1184 |
letters and other flags. Unfortunately, this means you cannot use a slash in
|
| 1185 |
-
a word. Thus "TCP/IP" is not a word but "TCP" with the flags "IP". To
|
| 1186 |
-
a slash in the word put a backslash before it: "TCP\/IP". In the rare
|
| 1187 |
-
you want to use a backslash inside a word you need to use two
|
|
|
|
| 1188 |
Any other use of the backslash is reserved for future expansion.
|
| 1189 |
|
| 1190 |
|
|
@@ -1614,7 +1615,7 @@ CHECKCOMPOUNDTRIPLE (Hunspell) *spell-CHECKCOMPOUNDTRIPLE*
|
|
| 1614 |
|
| 1615 |
CHECKSHARPS (Hunspell) *spell-CHECKSHARPS*
|
| 1616 |
SS letter pair in uppercased (German) words may be upper case
|
| 1617 |
-
sharp s (ß).
|
| 1618 |
|
| 1619 |
COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES*
|
| 1620 |
Enables using two prefixes. Not supported.
|
|
|
|
| 140 |
|
| 141 |
There are no normal mode commands to mark words as
|
| 142 |
rare as this is a fairly uncommon command and all
|
| 143 |
+
intuitive commands for this are already taken. If you
|
| 144 |
want you can add mappings with e.g.: >
|
| 145 |
nnoremap z? :exe ':spellrare ' .. expand('<cWORD>')<CR>
|
| 146 |
nnoremap z/ :exe ':spellrare! ' .. expand('<cWORD>')<CR>
|
|
|
|
| 300 |
|
| 301 |
*spell-cjk*
|
| 302 |
Chinese, Japanese and other East Asian characters are normally marked as
|
| 303 |
+
errors, because spell checking of these characters is not supported. If
|
| 304 |
'spelllang' includes "cjk", these characters are not marked as errors. This
|
| 305 |
is useful when editing text with spell checking while some Asian words are
|
| 306 |
present.
|
|
|
|
| 507 |
the word list and keeps it small.
|
| 508 |
*.aff* *.dic* *Myspell*
|
| 509 |
You can create a Vim spell file from the .aff and .dic files that Myspell
|
| 510 |
+
uses. Myspell is used by OpenOffice.org and Mozilla. The OpenOffice .oxt
|
| 511 |
+
files are zip files which contain the .aff and .dic files. You should be able
|
| 512 |
to find them here:
|
| 513 |
https://extensions.openoffice.org/en/search@f[0]=field_project_application%253A1&f[1]=field_project_tags%253A94.html
|
| 514 |
The older, OpenOffice 2 files may be used if this doesn't work:
|
|
|
|
| 842 |
|
| 843 |
When the word includes an upper-case letter, this means the upper-case letter
|
| 844 |
is required at this position. The same word with a lower-case letter at this
|
| 845 |
+
position will not match. When some of the other letters are upper-case it
|
| 846 |
+
will not match either.
|
| 847 |
|
| 848 |
The word with all upper-case characters will always be OK,
|
| 849 |
|
|
|
|
| 1182 |
|
| 1183 |
The slash is used in the .dic file to separate the basic word from the affix
|
| 1184 |
letters and other flags. Unfortunately, this means you cannot use a slash in
|
| 1185 |
+
a word. Thus "TCP/IP" is not a word but "TCP" with the flags "IP". To
|
| 1186 |
+
include a slash in the word put a backslash before it: "TCP\/IP". In the rare
|
| 1187 |
+
case you want to use a backslash inside a word you need to use two
|
| 1188 |
+
backslashes.
|
| 1189 |
Any other use of the backslash is reserved for future expansion.
|
| 1190 |
|
| 1191 |
|
|
|
|
| 1615 |
|
| 1616 |
CHECKSHARPS (Hunspell) *spell-CHECKSHARPS*
|
| 1617 |
SS letter pair in uppercased (German) words may be upper case
|
| 1618 |
+
sharp s (ß). Not supported.
|
| 1619 |
|
| 1620 |
COMPLEXPREFIXES (Hunspell) *spell-COMPLEXPREFIXES*
|
| 1621 |
Enables using two prefixes. Not supported.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*sponsor.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -35,7 +35,7 @@ More explanations can be found in the |register-faq|.
|
|
| 35 |
VOTE FOR FEATURES *vote-for-features*
|
| 36 |
|
| 37 |
Note: Voting for features has been discontinued since the passing of |Bram| in
|
| 38 |
-
2023.
|
| 39 |
they now only provide a historic view as of summer 2023.
|
| 40 |
|
| 41 |
The voting results appear on the results page, which is visible for everybody:
|
|
|
|
| 1 |
+
*sponsor.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 35 |
VOTE FOR FEATURES *vote-for-features*
|
| 36 |
|
| 37 |
Note: Voting for features has been discontinued since the passing of |Bram| in
|
| 38 |
+
2023. The following two links still work, but they are no longer updated. So
|
| 39 |
they now only provide a historic view as of summer 2023.
|
| 40 |
|
| 41 |
The voting results appear on the results page, which is visible for everybody:
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*starting.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -43,8 +43,8 @@ filename One or more file names. The first one will be the current
|
|
| 43 |
To avoid a file name starting with a '-' being interpreted as
|
| 44 |
an option, precede the arglist with "--", e.g.: >
|
| 45 |
vim -- -filename
|
| 46 |
-
< All arguments after the "--" will be interpreted as file
|
| 47 |
-
no other options or "+command" argument can follow.
|
| 48 |
For behavior of quotes on MS-Windows, see |win32-quotes|.
|
| 49 |
|
| 50 |
*--*
|
|
@@ -174,7 +174,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|
| 174 |
"pat" in the first file being edited (see |pattern| for the
|
| 175 |
available search patterns). The search starts at the cursor
|
| 176 |
position, which can be the first line or the cursor position
|
| 177 |
-
last used from |viminfo|.
|
| 178 |
line use "+1 +/pat".
|
| 179 |
|
| 180 |
+{command} *-+c* *-c*
|
|
@@ -262,7 +262,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|
| 262 |
shell command, it has only been made difficult.
|
| 263 |
|
| 264 |
*-g*
|
| 265 |
-
-g Start Vim in GUI mode. See |gui|.
|
| 266 |
|
| 267 |
*-v*
|
| 268 |
-v Start Ex in Vi mode. Only makes a difference when the
|
|
@@ -585,7 +585,7 @@ a slash. Thus "-R" means recovery and "-/R" readonly.
|
|
| 585 |
characters are appended. See also |complex-repeat|.
|
| 586 |
{scriptout} cannot start with a digit.
|
| 587 |
If you want to record what is typed in a human readable form,
|
| 588 |
-
you can use |ch_logfile()|.
|
| 589 |
Also see |--log|.
|
| 590 |
|
| 591 |
*-W*
|
|
@@ -830,7 +830,7 @@ accordingly. Vim proceeds in this order:
|
|
| 830 |
one that is found is read.
|
| 831 |
|
| 832 |
RECOMMENDATION: Put all your Vim configuration stuff in the
|
| 833 |
-
$HOME/.vim/ directory ($HOME/vimfiles/ for MS-Windows).
|
| 834 |
easy to copy it to another system.
|
| 835 |
|
| 836 |
If Vim was started with "-u filename", the file "filename" is used.
|
|
@@ -1089,7 +1089,7 @@ recommended to add these lines somewhere near the top: >
|
|
| 1089 |
source $VIMRUNTIME/defaults.vim
|
| 1090 |
Then Vim works like before you had a .vimrc.
|
| 1091 |
Copying $VIMRUNTIME/vimrc_example.vim to your .vimrc is another way to do
|
| 1092 |
-
this.
|
| 1093 |
(but then you won't get updates when it changes).
|
| 1094 |
|
| 1095 |
If you don't like some of the defaults, you can still source defaults.vim and
|
|
@@ -1112,8 +1112,8 @@ The specification can be found online at
|
|
| 1112 |
https://specifications.freedesktop.org/basedir-spec/latest/
|
| 1113 |
|
| 1114 |
The location of this standard configuration directory is configurable by the
|
| 1115 |
-
user, using an environment variable but should also give fallback in case
|
| 1116 |
-
variables weren't set.
|
| 1117 |
|
| 1118 |
This is not an exhaustive list of those directories:
|
| 1119 |
Environment var Default location Description ~
|
|
@@ -1129,7 +1129,7 @@ Vim will only use the `$XDG_CONFIG_HOME` directory, the others are not
|
|
| 1129 |
Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its
|
| 1130 |
configuration (see |vimrc|) but it will source it only if no other
|
| 1131 |
initialization file is found in `$HOME` or `$HOME/.vim` (thus making this
|
| 1132 |
-
feature backward compatible).
|
| 1133 |
`$XDG_CONFIG_HOME/vim/` directory, you will have to move away your `~/.vimrc`
|
| 1134 |
and `~/.vim/vimrc` file.
|
| 1135 |
|
|
@@ -1637,8 +1637,8 @@ has marks for.
|
|
| 1637 |
*viminfo-file-marks*
|
| 1638 |
Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The
|
| 1639 |
numbered marks ('0 to '9) are a bit special. When the viminfo file is written
|
| 1640 |
-
(when exiting or with the ":wviminfo" command), '0 is set to the current
|
| 1641 |
-
position and file. The old '0 is moved to '1, '1 to '2, etc. This
|
| 1642 |
resembles what happens with the "1 to "9 delete registers. If the current
|
| 1643 |
cursor position is already present in '0 to '9, it is moved to '0, to avoid
|
| 1644 |
having the same position twice. The result is that with "'0", you can jump
|
|
@@ -1738,8 +1738,8 @@ most of the information will be restored).
|
|
| 1738 |
The information in the file is first read in to make
|
| 1739 |
a merge between old and new info. When [!] is used,
|
| 1740 |
the old information is not read first, only the
|
| 1741 |
-
internal info is written. If 'viminfo' is empty,
|
| 1742 |
-
for up to 100 files will be written.
|
| 1743 |
When you get error "E929: Too many viminfo temp
|
| 1744 |
files", check that no old temp files were left behind
|
| 1745 |
(e.g. ~/.viminf*) and that you can write in the
|
|
|
|
| 1 |
+
*starting.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 43 |
To avoid a file name starting with a '-' being interpreted as
|
| 44 |
an option, precede the arglist with "--", e.g.: >
|
| 45 |
vim -- -filename
|
| 46 |
+
< All arguments after the "--" will be interpreted as file
|
| 47 |
+
names, no other options or "+command" argument can follow.
|
| 48 |
For behavior of quotes on MS-Windows, see |win32-quotes|.
|
| 49 |
|
| 50 |
*--*
|
|
|
|
| 174 |
"pat" in the first file being edited (see |pattern| for the
|
| 175 |
available search patterns). The search starts at the cursor
|
| 176 |
position, which can be the first line or the cursor position
|
| 177 |
+
last used from |viminfo|. To force a search from the first
|
| 178 |
line use "+1 +/pat".
|
| 179 |
|
| 180 |
+{command} *-+c* *-c*
|
|
|
|
| 262 |
shell command, it has only been made difficult.
|
| 263 |
|
| 264 |
*-g*
|
| 265 |
+
-g Start Vim in GUI mode. See |gui|. For the opposite see |-v|.
|
| 266 |
|
| 267 |
*-v*
|
| 268 |
-v Start Ex in Vi mode. Only makes a difference when the
|
|
|
|
| 585 |
characters are appended. See also |complex-repeat|.
|
| 586 |
{scriptout} cannot start with a digit.
|
| 587 |
If you want to record what is typed in a human readable form,
|
| 588 |
+
you can use |ch_logfile()|. It adds "raw key input" lines.
|
| 589 |
Also see |--log|.
|
| 590 |
|
| 591 |
*-W*
|
|
|
|
| 830 |
one that is found is read.
|
| 831 |
|
| 832 |
RECOMMENDATION: Put all your Vim configuration stuff in the
|
| 833 |
+
$HOME/.vim/ directory ($HOME/vimfiles/ for MS-Windows). That makes it
|
| 834 |
easy to copy it to another system.
|
| 835 |
|
| 836 |
If Vim was started with "-u filename", the file "filename" is used.
|
|
|
|
| 1089 |
source $VIMRUNTIME/defaults.vim
|
| 1090 |
Then Vim works like before you had a .vimrc.
|
| 1091 |
Copying $VIMRUNTIME/vimrc_example.vim to your .vimrc is another way to do
|
| 1092 |
+
this. Alternatively, you can copy defaults.vim to your .vimrc and modify it
|
| 1093 |
(but then you won't get updates when it changes).
|
| 1094 |
|
| 1095 |
If you don't like some of the defaults, you can still source defaults.vim and
|
|
|
|
| 1112 |
https://specifications.freedesktop.org/basedir-spec/latest/
|
| 1113 |
|
| 1114 |
The location of this standard configuration directory is configurable by the
|
| 1115 |
+
user, using an environment variable but should also give fallback in case
|
| 1116 |
+
those variables weren't set.
|
| 1117 |
|
| 1118 |
This is not an exhaustive list of those directories:
|
| 1119 |
Environment var Default location Description ~
|
|
|
|
| 1129 |
Vim, on Unix systems, will look at `$XDG_CONFIG_HOME/vim/vimrc` for its
|
| 1130 |
configuration (see |vimrc|) but it will source it only if no other
|
| 1131 |
initialization file is found in `$HOME` or `$HOME/.vim` (thus making this
|
| 1132 |
+
feature backward compatible). However, if you want to migrate to use
|
| 1133 |
`$XDG_CONFIG_HOME/vim/` directory, you will have to move away your `~/.vimrc`
|
| 1134 |
and `~/.vim/vimrc` file.
|
| 1135 |
|
|
|
|
| 1637 |
*viminfo-file-marks*
|
| 1638 |
Uppercase marks ('A to 'Z) are stored when writing the viminfo file. The
|
| 1639 |
numbered marks ('0 to '9) are a bit special. When the viminfo file is written
|
| 1640 |
+
(when exiting or with the ":wviminfo" command), '0 is set to the current
|
| 1641 |
+
cursor position and file. The old '0 is moved to '1, '1 to '2, etc. This
|
| 1642 |
resembles what happens with the "1 to "9 delete registers. If the current
|
| 1643 |
cursor position is already present in '0 to '9, it is moved to '0, to avoid
|
| 1644 |
having the same position twice. The result is that with "'0", you can jump
|
|
|
|
| 1738 |
The information in the file is first read in to make
|
| 1739 |
a merge between old and new info. When [!] is used,
|
| 1740 |
the old information is not read first, only the
|
| 1741 |
+
internal info is written. If 'viminfo' is empty,
|
| 1742 |
+
marks for up to 100 files will be written.
|
| 1743 |
When you get error "E929: Too many viminfo temp
|
| 1744 |
files", check that no old temp files were left behind
|
| 1745 |
(e.g. ~/.viminf*) and that you can write in the
|
|
@@ -380,12 +380,12 @@ Upon loading a file, Vim finds the relevant syntax file as follows:
|
|
| 380 |
4. Conversion to HTML *2html.vim* *convert-to-HTML*
|
| 381 |
|
| 382 |
2html is not a syntax file itself, but a script that converts the current
|
| 383 |
-
window into HTML.
|
| 384 |
|
| 385 |
-
After you save the resulting file, you can view it with any browser.
|
| 386 |
colors should be exactly the same as you see them in Vim. With
|
| 387 |
|g:html_line_ids| you can jump to specific lines by adding (for example) #L123
|
| 388 |
-
or #123 to the end of the URL in your browser's address bar.
|
| 389 |
|g:html_dynamic_folds| enabled, you can show or hide the text that is folded
|
| 390 |
in Vim.
|
| 391 |
|
|
@@ -394,7 +394,7 @@ Source the script to convert the current file: >
|
|
| 394 |
|
| 395 |
:runtime! syntax/2html.vim
|
| 396 |
<
|
| 397 |
-
Many variables affect the output of 2html.vim; see below.
|
| 398 |
options listed below can be enabled or disabled by setting them explicitly to
|
| 399 |
the desired value, or restored to their default by removing the variable using
|
| 400 |
|:unlet|.
|
|
@@ -421,17 +421,17 @@ and last line to be converted. Example, using the last set Visual area: >
|
|
| 421 |
<
|
| 422 |
*:TOhtml*
|
| 423 |
:[range]TOhtml The ":TOhtml" command is defined in a standard plugin.
|
| 424 |
-
This command will source |2html.vim| for you.
|
| 425 |
range is given, this command sets |g:html_start_line|
|
| 426 |
and |g:html_end_line| to the start and end of the
|
| 427 |
-
range, respectively.
|
| 428 |
buffer.
|
| 429 |
|
| 430 |
If the current window is part of a |diff|, unless
|
| 431 |
|g:html_diff_one_file| is set, :TOhtml will convert
|
| 432 |
all windows which are part of the diff in the current
|
| 433 |
tab and place them side-by-side in a <table> element
|
| 434 |
-
in the generated HTML.
|
| 435 |
jump to lines in specific windows with (for example)
|
| 436 |
#W1L42 for line 42 in the first diffed window, or
|
| 437 |
#W3L87 for line 87 in the third.
|
|
@@ -445,7 +445,7 @@ and last line to be converted. Example, using the last set Visual area: >
|
|
| 445 |
*g:html_diff_one_file*
|
| 446 |
Default: 0.
|
| 447 |
When 0, and using |:TOhtml| all windows involved in a |diff| in the current tab
|
| 448 |
-
page are converted to HTML and placed side-by-side in a <table> element.
|
| 449 |
1, only the current buffer is converted.
|
| 450 |
Example: >
|
| 451 |
|
|
@@ -465,9 +465,9 @@ not set.
|
|
| 465 |
Default: 0.
|
| 466 |
When 0, display a progress bar in the statusline for each major step in the
|
| 467 |
2html.vim conversion process.
|
| 468 |
-
When 1, do not display the progress bar.
|
| 469 |
-
but you won't have any idea how much longer the conversion might
|
| 470 |
-
files it can take a long time!
|
| 471 |
Example: >
|
| 472 |
|
| 473 |
let g:html_no_progress = 1
|
|
@@ -480,17 +480,17 @@ moves through the buffer, switches windows, and the like: >
|
|
| 480 |
<
|
| 481 |
Note that the -s flag prevents loading your .vimrc and any plugins, so you
|
| 482 |
need to explicitly source/enable anything that will affect the HTML
|
| 483 |
-
conversion.
|
| 484 |
script to replace all the -c commands and use it with the -u flag instead of
|
| 485 |
specifying each command separately.
|
| 486 |
|
| 487 |
*hl-TOhtmlProgress* *TOhtml-progress-color*
|
| 488 |
When displayed, the progress bar will show colored boxes along the statusline
|
| 489 |
-
as the HTML conversion proceeds.
|
| 490 |
-
current "DiffDelete" highlight group is used.
|
| 491 |
have the same background color, TOhtml will automatically adjust the color to
|
| 492 |
-
differ.
|
| 493 |
-
your own highlight colors for the progress bar.
|
| 494 |
|
| 495 |
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
|
| 496 |
<
|
|
@@ -509,11 +509,11 @@ Go back to the default to use 'number' by deleting the variable: >
|
|
| 509 |
*g:html_line_ids*
|
| 510 |
Default: 1 if |g:html_number_lines| is set, 0 otherwise.
|
| 511 |
When 1, adds an HTML id attribute to each line number, or to an empty <span>
|
| 512 |
-
inserted for that purpose if no line numbers are shown.
|
| 513 |
takes the form of L123 for single-buffer HTML pages, or W2L123 for diff-view
|
| 514 |
pages, and is used to jump to a specific line (in a specific window of a diff
|
| 515 |
-
view).
|
| 516 |
-
(|g:html_dynamic_folds|) containing the specified line before jumping.
|
| 517 |
javascript also allows omitting the window ID in the url, and the leading L.
|
| 518 |
For example: >
|
| 519 |
|
|
@@ -527,7 +527,7 @@ For example: >
|
|
| 527 |
Default: 1.
|
| 528 |
When 1, generate valid HTML 5 markup with CSS styling, supported in all modern
|
| 529 |
browsers and many old browsers.
|
| 530 |
-
When 0, generate <font> tags and similar outdated markup.
|
| 531 |
recommended but it may work better in really old browsers, email clients,
|
| 532 |
forum posts, and similar situations where basic CSS support is unavailable.
|
| 533 |
Example: >
|
|
@@ -549,10 +549,10 @@ included in the generated HTML (unless it is folded): >
|
|
| 549 |
*g:html_ignore_folding*
|
| 550 |
Default: 0.
|
| 551 |
When 0, text in a closed fold is replaced by the text shown for the fold in
|
| 552 |
-
Vim (|fold-foldtext|).
|
| 553 |
the user to expand the fold as in Vim to see the text inside.
|
| 554 |
When 1, include all text from the buffer in the generated HTML; whether the
|
| 555 |
-
text is in a fold has no impact at all.
|
| 556 |
|
| 557 |
Either of these commands will ensure that all text in the buffer is included
|
| 558 |
in the generated HTML (unless it is concealed): >
|
|
@@ -576,7 +576,7 @@ This variable is ignored when |g:html_ignore_folding| is set.
|
|
| 576 |
Default: 0.
|
| 577 |
When 0, if |g:html_dynamic_folds| is 1, generate a column of text similar to
|
| 578 |
Vim's foldcolumn (|fold-foldcolumn|) the user can click on to toggle folds
|
| 579 |
-
open or closed.
|
| 580 |
'foldcolumn' setting.
|
| 581 |
When 1, do not generate this column; instead, hovering the mouse cursor over
|
| 582 |
folded text will open the fold as if |g:html_hover_unfold| were set.
|
|
@@ -586,10 +586,10 @@ folded text will open the fold as if |g:html_hover_unfold| were set.
|
|
| 586 |
*TOhtml-uncopyable-text* *g:html_prevent_copy*
|
| 587 |
Default: Empty string.
|
| 588 |
This option prevents certain regions of the generated HTML from being copied,
|
| 589 |
-
when you select all text in document rendered in a browser and copy it.
|
| 590 |
-
for allowing users to copy-paste only the source text even if a fold
|
| 591 |
-
line numbers are shown in the generated content.
|
| 592 |
-
affected in this way as follows:
|
| 593 |
f: fold column
|
| 594 |
n: line numbers (also within fold text)
|
| 595 |
t: fold text
|
|
@@ -606,9 +606,9 @@ Default: "none"
|
|
| 606 |
If |g:html_prevent_copy| is non-empty, then:
|
| 607 |
|
| 608 |
When "all", read-only <input> elements are used in place of normal text for
|
| 609 |
-
uncopyable regions.
|
| 610 |
selecting an entire page and copying the selection, the <input> tags are not
|
| 611 |
-
pasted with the page text.
|
| 612 |
invalid type; this works in more browsers, but the page will not validate.
|
| 613 |
Note: This method does NOT work in recent versions of Chrome and equivalent
|
| 614 |
browsers; the <input> tags get pasted with the text.
|
|
@@ -616,23 +616,23 @@ browsers; the <input> tags get pasted with the text.
|
|
| 616 |
When "fallback" (default value), the same <input> elements are generated for
|
| 617 |
older browsers, but newer browsers (detected by CSS feature query) hide the
|
| 618 |
<input> elements and instead use generated content in an ::before pseudoelement
|
| 619 |
-
to display the uncopyable text.
|
| 620 |
number of browsers, both old and new.
|
| 621 |
|
| 622 |
-
When "none", the <input> elements are not generated at all.
|
| 623 |
-
generated-content method is used.
|
| 624 |
Internet Explorer, will either copy the text intended not to be copyable, or
|
| 625 |
-
the non-copyable text may not appear at all.
|
| 626 |
standards-based method, and there will be much less markup.
|
| 627 |
|
| 628 |
*g:html_no_invalid*
|
| 629 |
Default: 0.
|
| 630 |
When 0, if |g:html_prevent_copy| is non-empty and |g:html_use_input_for_pc| is
|
| 631 |
not "none", an invalid attribute is intentionally inserted into the <input>
|
| 632 |
-
element for the uncopyable areas.
|
| 633 |
-
in some applications.
|
| 634 |
-
paste the <input> elements if they contain this invalid attribute.
|
| 635 |
-
invalid markup is inserted, and the generated page should validate.
|
| 636 |
<input> elements may be pasted into some applications and can be difficult to
|
| 637 |
remove afterward.
|
| 638 |
|
|
@@ -641,7 +641,7 @@ Default: 0.
|
|
| 641 |
When 0, the only way to open a fold generated by 2html.vim with
|
| 642 |
|g:html_dynamic_folds| set, is to click on the generated fold column.
|
| 643 |
When 1, use CSS 2.0 to allow the user to open a fold by moving the mouse
|
| 644 |
-
cursor over the displayed fold text.
|
| 645 |
disabled javascript to view the folded text.
|
| 646 |
|
| 647 |
Note that old browsers (notably Internet Explorer 6) will not support this
|
|
@@ -654,11 +654,11 @@ they will not be openable without a foldcolumn.
|
|
| 654 |
*g:html_id_expr*
|
| 655 |
Default: ""
|
| 656 |
Dynamic folding and jumping to line IDs rely on unique IDs within the document
|
| 657 |
-
to work.
|
| 658 |
-
longer guaranteed to be unique.
|
| 659 |
evaluate to get a unique string to append to each ID used in a given document,
|
| 660 |
so that the full IDs will be unique even when combined with other content in a
|
| 661 |
-
larger HTML document.
|
| 662 |
|
| 663 |
:let g:html_id_expr = '"_" .. bufnr("%")'
|
| 664 |
<
|
|
@@ -687,11 +687,11 @@ Go back to default, determine wrapping from 'wrap' setting: >
|
|
| 687 |
*g:html_no_pre*
|
| 688 |
Default: 0.
|
| 689 |
When 0, buffer text in the generated HTML is surrounded by <pre>...</pre>
|
| 690 |
-
tags.
|
| 691 |
characters can be included literally (see |g:html_expand_tabs|).
|
| 692 |
When 1 (not recommended), the <pre> tags are omitted, and a plain <div> is
|
| 693 |
-
used instead.
|
| 694 |
-
references, and <br> is used to end each line.
|
| 695 |
text in the generated HTML is wrap (see |g:html_pre_wrap|) which also works in
|
| 696 |
old browsers, but may cause noticeable differences between Vim's display and
|
| 697 |
the rendered page generated by 2html.vim.
|
|
@@ -701,8 +701,8 @@ the rendered page generated by 2html.vim.
|
|
| 701 |
*g:html_no_doc*
|
| 702 |
Default: 0.
|
| 703 |
When 1 it doesn't generate a full HTML document with a DOCTYPE, <head>,
|
| 704 |
-
<body>, etc.
|
| 705 |
-
define the CSS manually.
|
| 706 |
settings (off by default) also insert some JavaScript.
|
| 707 |
|
| 708 |
|
|
@@ -721,9 +721,9 @@ Default: 0 if 'tabstop' is 8, 'expandtab' is 0, 'vartabstop' is not in use,
|
|
| 721 |
When 1, <Tab> characters in the buffer text are replaced with an appropriate
|
| 722 |
number of space characters, or references if |g:html_no_pre| is 1.
|
| 723 |
When 0, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
|
| 724 |
-
are included as-is in the generated HTML.
|
| 725 |
allow copy and paste from a browser without losing the actual whitespace in
|
| 726 |
-
the source document.
|
| 727 |
indentation in the HTML, unless set by default.
|
| 728 |
|
| 729 |
Force |2html.vim| to keep <Tab> characters: >
|
|
@@ -738,14 +738,15 @@ It is highly recommended to set your desired encoding with
|
|
| 738 |
|
| 739 |
If you do not specify an encoding, |2html.vim| uses the preferred IANA name
|
| 740 |
for the current value of 'fileencoding' if set, or 'encoding' if not.
|
| 741 |
-
'encoding' is always used for certain 'buftype' values.
|
| 742 |
-
set to match the chosen document encoding.
|
| 743 |
|
| 744 |
Automatic detection works for the encodings mentioned specifically by name in
|
| 745 |
|encoding-names|, but TOhtml will only automatically use those encodings with
|
| 746 |
-
wide browser support.
|
| 747 |
encodings that may not be automatically detected by default (see options
|
| 748 |
-
below).
|
|
|
|
| 749 |
|
| 750 |
Note: By default all Unicode encodings are converted to UTF-8 with no BOM in
|
| 751 |
the generated HTML, as recommended by W3C:
|
|
@@ -756,7 +757,7 @@ the generated HTML, as recommended by W3C:
|
|
| 756 |
*g:html_use_encoding*
|
| 757 |
Default: none, uses IANA name for current 'fileencoding' as above.
|
| 758 |
To overrule all automatic charset detection, set g:html_use_encoding to the
|
| 759 |
-
name of the charset to be used.
|
| 760 |
something widely supported, like UTF-8, for anything you will be hosting on a
|
| 761 |
webserver: >
|
| 762 |
:let g:html_use_encoding = "UTF-8"
|
|
@@ -785,10 +786,10 @@ Default: none, autoload/tohtml.vim contains default conversions for encodings
|
|
| 785 |
mentioned by name at |encoding-names| and which have wide
|
| 786 |
browser support.
|
| 787 |
This option allows |2html.vim| to detect the HTML charset for any
|
| 788 |
-
'fileencoding' or 'encoding' which is not detected automatically.
|
| 789 |
-
use it to override specific existing encoding-charset pairs.
|
| 790 |
-
TOhtml will by default use UTF-8 for all Unicode/UCS encodings.
|
| 791 |
-
and UTF-32 instead, use: >
|
| 792 |
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
|
| 793 |
|
| 794 |
Note that documents encoded in either UTF-32 or UTF-16 have known
|
|
@@ -797,12 +798,12 @@ compatibility problems with some major browsers.
|
|
| 797 |
*g:html_font*
|
| 798 |
Default: "monospace"
|
| 799 |
You can specify the font or fonts used in the converted document using
|
| 800 |
-
g:html_font.
|
| 801 |
-
surrounded with single quotes.
|
| 802 |
-
item is surrounded by single quotes and the list is joined with commas.
|
| 803 |
-
way, "monospace" is added as the fallback generic family name and the
|
| 804 |
-
result used as the font family (using CSS) or font face (if not using
|
| 805 |
-
Examples: >
|
| 806 |
|
| 807 |
" font-family: 'Consolas', monospace;
|
| 808 |
:let g:html_font = "Consolas"
|
|
@@ -876,9 +877,9 @@ version 2.2.3.
|
|
| 876 |
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
|
| 877 |
*ft-masm-syntax* *ft-asm68k-syntax* *fasm.vim*
|
| 878 |
|
| 879 |
-
Files matching "*.i" could be Progress or Assembly. If the automatic
|
| 880 |
-
doesn't work for you, or you don't edit Progress at all, use this in
|
| 881 |
-
startup vimrc: >
|
| 882 |
:let filetype_i = "asm"
|
| 883 |
Replace "asm" with the type of assembly you use.
|
| 884 |
|
|
@@ -893,7 +894,7 @@ files are included:
|
|
| 893 |
ia64 Intel Itanium 64
|
| 894 |
fasm Flat assembly (http://flatassembler.net)
|
| 895 |
masm Microsoft assembly (.masm files are compiled with
|
| 896 |
-
Microsoft's Macro Assembler.
|
| 897 |
for x86, x86_64, ARM and AARCH64 CPU families)
|
| 898 |
nasm Netwide assembly
|
| 899 |
tasm Turbo Assembly (with opcodes 80x86 up to Pentium, and
|
|
@@ -965,7 +966,7 @@ For Visual Basic use: >
|
|
| 965 |
|
| 966 |
ASYMPTOTE *asy.vim* *ft-asy-syntax*
|
| 967 |
|
| 968 |
-
By default, only basic Asymptote keywords are highlighted.
|
| 969 |
extended geometry keywords: >
|
| 970 |
|
| 971 |
:let g:asy_syn_plain = 1
|
|
@@ -974,7 +975,7 @@ and for highlighting keywords related to 3D constructions: >
|
|
| 974 |
|
| 975 |
:let g:asy_syn_three = 1
|
| 976 |
|
| 977 |
-
By default, Asymptote-defined colors (e.g: lightblue) are highlighted.
|
| 978 |
highlight TeX-defined colors (e.g: BlueViolet) use: >
|
| 979 |
|
| 980 |
:let g:asy_syn_texcolors = 1
|
|
@@ -986,8 +987,8 @@ or for Xorg colors (e.g: AliceBlue): >
|
|
| 986 |
BAAN *baan.vim* *baan-syntax*
|
| 987 |
|
| 988 |
The baan.vim gives syntax support for BaanC of release BaanIV up to SSA ERP LN
|
| 989 |
-
for both 3 GL and 4 GL programming.
|
| 990 |
-
are supported.
|
| 991 |
|
| 992 |
Some special violation of coding standards will be signalled when one specify
|
| 993 |
in ones |.vimrc|: >
|
|
@@ -996,7 +997,7 @@ in ones |.vimrc|: >
|
|
| 996 |
*baan-folding*
|
| 997 |
|
| 998 |
Syntax folding can be enabled at various levels through the variables
|
| 999 |
-
mentioned below (Set those in your |.vimrc|).
|
| 1000 |
source blocks and SQL can be CPU intensive.
|
| 1001 |
|
| 1002 |
To allow any folding and enable folding at function level use: >
|
|
@@ -1009,9 +1010,9 @@ Folding can be enabled for embedded SQL blocks as SELECT, SELECTDO,
|
|
| 1009 |
SELECTEMPTY, ... The indentation preceding the begin/end keywords has to
|
| 1010 |
match (spaces are not considered equal to a tab). >
|
| 1011 |
let baan_fold_sql=1
|
| 1012 |
-
Note: Block folding can result in many small folds.
|
| 1013 |
the options 'foldminlines' and 'foldnestmax' in |.vimrc| or use |:setlocal| in
|
| 1014 |
-
.../after/syntax/baan.vim (see |after-directory|).
|
| 1015 |
set foldminlines=5
|
| 1016 |
set foldnestmax=6
|
| 1017 |
|
|
@@ -1062,7 +1063,7 @@ Variable Highlight ~
|
|
| 1062 |
*c_syntax_for_h* use C syntax for *.h files instead of C++/ObjC/ObjC++
|
| 1063 |
(NOTE: This variable is deprecated and no longer
|
| 1064 |
necessary, as *.h files now default to C, unless the
|
| 1065 |
-
file contains C++ or Objective-C syntax.
|
| 1066 |
automated detection fails, the default filetype can
|
| 1067 |
be adjusted using `g:filetype_h`.)
|
| 1068 |
*c_no_if0* don't highlight "#if 0" blocks as comments
|
|
@@ -1273,7 +1274,7 @@ variable.
|
|
| 1273 |
CSV *ft-csv-syntax*
|
| 1274 |
|
| 1275 |
If you change the delimiter of a CSV file, its syntax highlighting will no
|
| 1276 |
-
longer match the changed file content.
|
| 1277 |
variable: >
|
| 1278 |
|
| 1279 |
:unlet b:csv_delimiter
|
|
@@ -1289,10 +1290,10 @@ Now the syntax engine should determine the newly changed CSV delimiter.
|
|
| 1289 |
CYNLIB *cynlib.vim* *ft-cynlib-syntax*
|
| 1290 |
|
| 1291 |
Cynlib files are C++ files that use the Cynlib class library to enable
|
| 1292 |
-
hardware modelling and simulation using C++. Typically Cynlib files have a
|
| 1293 |
-
or a .cpp extension, which makes it very difficult to distinguish them
|
| 1294 |
-
normal C++ file. Thus, to enable Cynlib highlighting for .cc files,
|
| 1295 |
-
line to your .vimrc file: >
|
| 1296 |
|
| 1297 |
:let cynlib_cyntax_for_cc=1
|
| 1298 |
|
|
@@ -1332,9 +1333,9 @@ following variables:
|
|
| 1332 |
DART *dart.vim* *ft-dart-syntax*
|
| 1333 |
|
| 1334 |
Dart is an object-oriented, typed, class defined, garbage collected language
|
| 1335 |
-
used for developing mobile, desktop, web, and back-end applications. Dart
|
| 1336 |
-
a C-like syntax derived from C, Java, and JavaScript, with features
|
| 1337 |
-
from Smalltalk, Python, Ruby, and others.
|
| 1338 |
|
| 1339 |
More information about the language and its development environment at the
|
| 1340 |
official Dart language website at https://dart.dev
|
|
@@ -1450,7 +1451,7 @@ Doxygen generates code documentation using a special documentation format
|
|
| 1450 |
(similar to Javadoc). This syntax script adds doxygen highlighting to c, cpp,
|
| 1451 |
idl and php files, and should also work with java.
|
| 1452 |
|
| 1453 |
-
There are a few of ways to turn on doxygen formatting.
|
| 1454 |
explicitly or in a modeline by appending '.doxygen' to the syntax of the file.
|
| 1455 |
Example: >
|
| 1456 |
:set syntax=c.doxygen
|
|
@@ -1558,7 +1559,7 @@ to your startup file.
|
|
| 1558 |
|
| 1559 |
EUPHORIA *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*
|
| 1560 |
|
| 1561 |
-
Two syntax highlighting files exist for Euphoria.
|
| 1562 |
version 3.1.1, which is the default syntax highlighting file, and one for
|
| 1563 |
Euphoria version 4.0.5 or later.
|
| 1564 |
|
|
@@ -1584,7 +1585,7 @@ add the following line to your startup file: >
|
|
| 1584 |
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
| 1585 |
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
| 1586 |
file is determined to be Euphoria based on keywords in the file, then the
|
| 1587 |
-
filetype will be set as Euphoria.
|
| 1588 |
Elixir.
|
| 1589 |
|
| 1590 |
|
|
@@ -1644,10 +1645,10 @@ The following file extensions are auto-detected as Elixir file types:
|
|
| 1644 |
|
| 1645 |
*.ex, *.exs, *.eex, *.leex, *.lock
|
| 1646 |
|
| 1647 |
-
Elixir and Euphoria share the *.ex file extension.
|
| 1648 |
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
| 1649 |
file is determined to be Euphoria based on keywords in the file, then the
|
| 1650 |
-
filetype will be set as Euphoria.
|
| 1651 |
Elixir.
|
| 1652 |
|
| 1653 |
|
|
@@ -1659,12 +1660,12 @@ NOTE: This site currently doesn't work, on Wikipedia is mentioned that
|
|
| 1659 |
development stopped in 2009.
|
| 1660 |
|
| 1661 |
Syntax highlighting is available for the most common elements of FlexWiki
|
| 1662 |
-
syntax.
|
| 1663 |
-
editing FlexWiki pages more convenient.
|
| 1664 |
start of a new paragraph, so the ftplugin sets 'tw'=0 (unlimited line length),
|
| 1665 |
'wrap' (wrap long lines instead of using horizontal scrolling), 'linebreak'
|
| 1666 |
(to wrap at a character in 'breakat' instead of at the last char on screen),
|
| 1667 |
-
and so on.
|
| 1668 |
|
| 1669 |
If you want to enable the keymaps that make "j" and "k" and the cursor keys
|
| 1670 |
move up and down by display lines, add this to your .vimrc: >
|
|
@@ -1725,7 +1726,7 @@ edit F# or Fortran at all, use this in your startup vimrc: >
|
|
| 1725 |
FORTRAN *fortran.vim* *ft-fortran-syntax*
|
| 1726 |
|
| 1727 |
Default highlighting and dialect ~
|
| 1728 |
-
Vim highlights according to Fortran 2023 (the most recent standard).
|
| 1729 |
choice should be appropriate for most users most of the time because Fortran
|
| 1730 |
2023 is almost a superset of previous versions (Fortran 2018, 2008, 2003, 95,
|
| 1731 |
90, 77, and 66). A few legacy constructs deleted or declared obsolescent,
|
|
@@ -1750,21 +1751,21 @@ in your .vimrc prior to the :syntax on command.
|
|
| 1750 |
|
| 1751 |
If the form of the source code depends, in a non-standard way, upon the file
|
| 1752 |
extension, then it is most convenient to set fortran_free_source in a ftplugin
|
| 1753 |
-
file. For more information on ftplugin files, see |ftplugin|.
|
| 1754 |
will work only if the "filetype plugin indent on" command precedes the "syntax
|
| 1755 |
on" command in your .vimrc file.
|
| 1756 |
|
| 1757 |
When you edit an existing Fortran file, the syntax script will assume free
|
| 1758 |
source form if the fortran_free_source variable has been set, and assumes
|
| 1759 |
fixed source form if the fortran_fixed_source variable has been set. Suppose
|
| 1760 |
-
neither of these variables have been set.
|
| 1761 |
attempts to determine which source form has been used by examining the file
|
| 1762 |
extension using conventions common to the ifort, gfortran, Cray, NAG, and
|
| 1763 |
PathScale compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08
|
| 1764 |
for free-source). No default is used for the .fpp and .ftn file extensions
|
| 1765 |
-
because different compilers treat them differently.
|
| 1766 |
then the script examines the first five columns of the first 500 lines of your
|
| 1767 |
-
file.
|
| 1768 |
to be in fixed source form. The algorithm should work in the vast majority of
|
| 1769 |
cases. In some cases, such as a file that begins with 500 or more full-line
|
| 1770 |
comments, the script may incorrectly decide that the code is in fixed form.
|
|
@@ -1809,8 +1810,8 @@ fortran_fold in your .vimrc with a command such as >
|
|
| 1809 |
to instruct the syntax script to define fold regions for program units, that
|
| 1810 |
is main programs starting with a program statement, subroutines, function
|
| 1811 |
subprograms, modules, submodules, blocks of comment lines, and block data
|
| 1812 |
-
units.
|
| 1813 |
-
constructs will also be folded. If you also set the variable
|
| 1814 |
fortran_fold_conditionals with a command such as >
|
| 1815 |
:let fortran_fold_conditionals=1
|
| 1816 |
then fold regions will also be defined for do loops, if blocks, select case,
|
|
@@ -2291,7 +2292,7 @@ JSON *json.vim* *ft-json-syntax* *g:vim_json_conceal*
|
|
| 2291 |
*g:vim_json_warnings*
|
| 2292 |
|
| 2293 |
The json syntax file provides syntax highlighting with conceal support by
|
| 2294 |
-
default.
|
| 2295 |
let g:vim_json_conceal = 0
|
| 2296 |
|
| 2297 |
To disable syntax highlighting of errors: >
|
|
@@ -2447,7 +2448,7 @@ instead, and the name of your source file should be *.pike
|
|
| 2447 |
|
| 2448 |
LUA *lua.vim* *ft-lua-syntax*
|
| 2449 |
|
| 2450 |
-
The Lua syntax file can be used for versions 4.0, 5.0+.
|
| 2451 |
these versions using the global variables |g:lua_version| and
|
| 2452 |
|g:lua_subversion|.
|
| 2453 |
|
|
@@ -2455,9 +2456,9 @@ these versions using the global variables |g:lua_version| and
|
|
| 2455 |
MAIL *mail.vim* *ft-mail.vim*
|
| 2456 |
|
| 2457 |
Vim highlights all the standard elements of an email (headers, signatures,
|
| 2458 |
-
quoted text and URLs / email addresses). In keeping with standard
|
| 2459 |
-
signatures begin in a line containing only "--" followed
|
| 2460 |
-
whitespaces and end with a newline.
|
| 2461 |
|
| 2462 |
Vim treats lines beginning with ']', '}', '|', '>' or a word followed by '>'
|
| 2463 |
as quoted text. However Vim highlights headers and signatures in quoted text
|
|
@@ -2498,8 +2499,9 @@ MAPLE *maple.vim* *ft-maple-syntax*
|
|
| 2498 |
|
| 2499 |
Maple V, by Waterloo Maple Inc, supports symbolic algebra. The language
|
| 2500 |
supports many packages of functions which are selectively loaded by the user.
|
| 2501 |
-
The standard set of packages' functions as supplied in Maple V release 4 may
|
| 2502 |
-
highlighted at the user's discretion. Users may place in their .vimrc
|
|
|
|
| 2503 |
|
| 2504 |
:let mvpkg_all= 1
|
| 2505 |
|
|
@@ -2553,13 +2555,13 @@ have the following in your .vimrc: >
|
|
| 2553 |
MBSYNC *mbsync.vim* *ft-mbsync-syntax*
|
| 2554 |
|
| 2555 |
The mbsync application uses a configuration file to setup mailboxes names,
|
| 2556 |
-
user and password.
|
| 2557 |
`isyncrc` will be recognized as mbsync configuration files.
|
| 2558 |
|
| 2559 |
MEDIAWIKI *ft-mediawiki-syntax*
|
| 2560 |
|
| 2561 |
By default, syntax highlighting includes basic HTML tags like style and
|
| 2562 |
-
headers |html.vim|.
|
| 2563 |
|
| 2564 |
let g:html_no_rendering = 1
|
| 2565 |
|
|
@@ -2587,7 +2589,7 @@ The syntax for a dialect tag comment is: >
|
|
| 2587 |
m2pim = 'm2pim', m2iso = 'm2iso', m2r10 = 'm2r10'
|
| 2588 |
|
| 2589 |
A dialect tag comment is recognised by Vim if it occurs within the first 200
|
| 2590 |
-
lines of the source file.
|
| 2591 |
additional dialect tag comments are ignored.
|
| 2592 |
|
| 2593 |
Example: >
|
|
@@ -2792,7 +2794,7 @@ To do so, set the *g:filetype_md* var: >
|
|
| 2792 |
|
| 2793 |
:let g:filetype_md = 'pandoc'
|
| 2794 |
|
| 2795 |
-
The pandoc syntax plugin uses |conceal| for pretty highlighting.
|
| 2796 |
|
| 2797 |
:let g:pandoc#syntax#conceal#use = 1
|
| 2798 |
|
|
@@ -2821,8 +2823,8 @@ This is a list of the rules which can be used here:
|
|
| 2821 |
- inlinecode
|
| 2822 |
- inlinemath
|
| 2823 |
|
| 2824 |
-
You can customize the way concealing works.
|
| 2825 |
-
footnotes with the `*` symbol: >
|
| 2826 |
|
| 2827 |
:let g:pandoc#syntax#conceal#cchar_overrides = {"footnote" : "*"}
|
| 2828 |
|
|
@@ -2842,8 +2844,8 @@ specified. Default = 1 >
|
|
| 2842 |
:let g:pandoc#syntax#codeblocks#embeds#use = 1
|
| 2843 |
|
| 2844 |
For specify what languages and using what syntax files to highlight embeds.
|
| 2845 |
-
This is a list of language names.
|
| 2846 |
-
match, you can use the "PANDOC=VIM" syntax.
|
| 2847 |
|
| 2848 |
:let g:pandoc#syntax#codeblocks#embeds#langs = ["ruby", "bash=sh"]
|
| 2849 |
|
|
@@ -2858,8 +2860,8 @@ To add underline subscript, superscript and strikeout text styles. Default = 1 >
|
|
| 2858 |
|
| 2859 |
:let g:pandoc#syntax#style#underline_special = 1
|
| 2860 |
|
| 2861 |
-
Detect and highlight definition lists.
|
| 2862 |
-
Default = 1 (i.e., enabled by default) >
|
| 2863 |
|
| 2864 |
:let g:pandoc#syntax#style#use_definition_lists = 1
|
| 2865 |
|
|
@@ -2867,7 +2869,7 @@ The pandoc syntax script also comes with the following commands: >
|
|
| 2867 |
|
| 2868 |
:PandocHighlight LANG
|
| 2869 |
|
| 2870 |
-
Enables embedded highlighting for language LANG in codeblocks.
|
| 2871 |
syntax for items in g:pandoc#syntax#codeblocks#embeds#langs. >
|
| 2872 |
|
| 2873 |
:PandocUnhighlight LANG
|
|
@@ -3280,7 +3282,7 @@ commands than are actually available to you by the game.
|
|
| 3280 |
R *r.vim* *ft-r-syntax*
|
| 3281 |
|
| 3282 |
The parsing of R code for syntax highlight starts 40 lines backwards, but you
|
| 3283 |
-
can set a different value in your |vimrc|.
|
| 3284 |
let r_syntax_minlines = 60
|
| 3285 |
|
| 3286 |
You can also turn off syntax highlighting of ROxygen: >
|
|
@@ -3306,9 +3308,9 @@ To highlight R code in knitr chunk headers: >
|
|
| 3306 |
let rmd_syn_hl_chunk = 1
|
| 3307 |
|
| 3308 |
By default, chunks of R code will be highlighted following the rules of R
|
| 3309 |
-
language.
|
| 3310 |
-
highlights other languages if they are present in new chunks.
|
| 3311 |
-
is automatically recognized and highlighted when the buffer is saved.
|
| 3312 |
behavior can be controlled with the variables `rmd_dynamic_fenced_languages`,
|
| 3313 |
and `rmd_include_latex` whose valid values are: >
|
| 3314 |
let rmd_dynamic_fenced_languages = 0 " No autodetection of languages
|
|
@@ -3331,10 +3333,10 @@ To highlight R code in knitr chunk headers, add to your |vimrc|: >
|
|
| 3331 |
|
| 3332 |
RASI *rasi.vim* *ft-rasi-syntax*
|
| 3333 |
|
| 3334 |
-
Rasi stands for Rofi Advanced Style Information.
|
| 3335 |
-
rofi to style the rendering of the search window.
|
| 3336 |
-
inspired by CSS stylesheet.
|
| 3337 |
-
as rasi files: .rasi.
|
| 3338 |
|
| 3339 |
READLINE *readline.vim* *ft-readline-syntax*
|
| 3340 |
|
|
@@ -3686,7 +3688,7 @@ the following line in your .vimrc: >
|
|
| 3686 |
Sh: EMBEDDING LANGUAGES~
|
| 3687 |
|
| 3688 |
You may wish to embed languages into sh. I'll give an example courtesy of
|
| 3689 |
-
Lorance Stinson on how to do this with awk as an example.
|
| 3690 |
file into $HOME/.vim/after/syntax/sh/awkembed.vim: >
|
| 3691 |
|
| 3692 |
" AWK Embedding:
|
|
@@ -3783,7 +3785,7 @@ to a larger number: >
|
|
| 3783 |
|
| 3784 |
This will make the syntax synchronization start 1000 lines before the first
|
| 3785 |
displayed line. If you set "tcsh_minlines" to "fromstart", then
|
| 3786 |
-
synchronization is done from the start of the file.
|
| 3787 |
tcsh_minlines is 100. The disadvantage of using a larger number is that
|
| 3788 |
redrawing can become slow.
|
| 3789 |
|
|
@@ -3992,7 +3994,7 @@ substitution will not be made.
|
|
| 3992 |
*g:tex_isk* *g:tex_stylish*
|
| 3993 |
Tex: Controlling iskeyword~
|
| 3994 |
|
| 3995 |
-
Normally, LaTeX keywords support 0-9, a-z, A-z, and 192-255 only.
|
| 3996 |
keywords don't support the underscore - except when in *.sty files. The
|
| 3997 |
syntax highlighting script handles this with the following logic:
|
| 3998 |
|
|
@@ -4045,7 +4047,8 @@ syntax highlighting script handles this with the following logic:
|
|
| 4045 |
< If you don't want matching to occur inside bold and italicized
|
| 4046 |
regions, >
|
| 4047 |
let g:tex_excludematcher= 1
|
| 4048 |
-
< will prevent the texMatcher group from being included in those
|
|
|
|
| 4049 |
|
| 4050 |
TF *tf.vim* *ft-tf-syntax*
|
| 4051 |
|
|
@@ -4063,7 +4066,7 @@ There is one option to control the TypeScript syntax highlighting.
|
|
| 4063 |
|
| 4064 |
*g:typescript_host_keyword*
|
| 4065 |
When this variable is set to 1, host-specific APIs such as `addEventListener`
|
| 4066 |
-
are highlighted.
|
| 4067 |
|
| 4068 |
let g:typescript_host_keyword = 0
|
| 4069 |
<
|
|
@@ -4073,8 +4076,8 @@ TYPST *ft-typst-syntax*
|
|
| 4073 |
|
| 4074 |
*g:typst_embedded_languages*
|
| 4075 |
Typst files can embed syntax highlighting for other languages by setting the
|
| 4076 |
-
|g:typst_embedded_languages| variable.
|
| 4077 |
-
names whose syntax definitions will be included in Typst files.
|
| 4078 |
|
| 4079 |
let g:typst_embedded_languages = ['python', 'r']
|
| 4080 |
|
|
@@ -4167,8 +4170,8 @@ using Neovim), set >
|
|
| 4167 |
|
| 4168 |
WDL *wdl.vim* *wdl-syntax*
|
| 4169 |
|
| 4170 |
-
The Workflow Description Language is a way to specify data processing
|
| 4171 |
-
with a human-readable and writeable syntax. This is used a lot in
|
| 4172 |
bioinformatics. More info on the spec can be found here:
|
| 4173 |
https://github.com/openwdl/wdl
|
| 4174 |
|
|
@@ -4236,11 +4239,11 @@ YAML *yaml.vim* *ft-yaml-syntax*
|
|
| 4236 |
|
| 4237 |
*g:yaml_schema* *b:yaml_schema*
|
| 4238 |
A YAML schema is a combination of a set of tags and a mechanism for resolving
|
| 4239 |
-
non-specific tags.
|
| 4240 |
plain scalar contents, treat plain scalar (which can actually be only string
|
| 4241 |
and nothing else) as a value of the other type: null, boolean, floating-point,
|
| 4242 |
-
integer.
|
| 4243 |
-
will be highlighted specially.
|
| 4244 |
|
| 4245 |
Schema Description ~
|
| 4246 |
failsafe No additional highlighting.
|
|
@@ -4690,7 +4693,7 @@ concealends *:syn-concealends*
|
|
| 4690 |
When the "concealends" argument is given, the start and end matches of
|
| 4691 |
the region, but not the contents of the region, are marked as concealable.
|
| 4692 |
Whether or not they are actually concealed depends on the setting on the
|
| 4693 |
-
'conceallevel' option.
|
| 4694 |
in this way when they have their own highlighting via "matchgroup". The
|
| 4695 |
|synconcealed()| function can be used to retrieve information about conealed
|
| 4696 |
items.
|
|
@@ -4974,7 +4977,7 @@ IMPLICIT CONCEAL *:syn-conceal-implicit*
|
|
| 4974 |
|
| 4975 |
:sy[ntax] conceal [on|off]
|
| 4976 |
This defines if the following ":syntax" commands will define keywords,
|
| 4977 |
-
matches or regions with the "conceal" flag set.
|
| 4978 |
on", all subsequent ":syn keyword", ":syn match" or ":syn region"
|
| 4979 |
defined will have the "conceal" flag set implicitly. ":syn conceal
|
| 4980 |
off" returns to the normal state where the "conceal" flag must be
|
|
@@ -5476,8 +5479,9 @@ of colors by using the `:colorscheme` command, for example: >
|
|
| 5476 |
< In case g:colors_name has not been defined :colo will
|
| 5477 |
output "default". Its palette is defined in the file
|
| 5478 |
"$VIMRUNTIME/syntax/syncolor.vim" and is based on
|
| 5479 |
-
legacy versions of peachpuff and desert. When
|
| 5480 |
-
without the |+eval| feature it will output
|
|
|
|
| 5481 |
|
| 5482 |
:colo[rscheme] {name} Load color scheme {name}. This searches 'runtimepath'
|
| 5483 |
for the file "colors/{name}.vim". The first one that
|
|
@@ -5575,7 +5579,7 @@ in their own color.
|
|
| 5575 |
|
| 5576 |
:hi[ghlight] [default] {group-name} {key}={arg} ...
|
| 5577 |
Add a highlight group, or change the highlighting for
|
| 5578 |
-
an existing group.
|
| 5579 |
recognized, each `colors/lists/default.vim` found on
|
| 5580 |
'runtimepath' will be loaded.
|
| 5581 |
See |highlight-args| for the {key}={arg} arguments.
|
|
@@ -5610,7 +5614,7 @@ also tell where it was last set. Example: >
|
|
| 5610 |
Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~
|
| 5611 |
|
| 5612 |
When ":hi clear" is used then the script where this command is used will be
|
| 5613 |
-
mentioned for the default values.
|
| 5614 |
|
| 5615 |
*highlight-args* *E416* *E417* *E423*
|
| 5616 |
There are three types of terminals for highlighting:
|
|
@@ -5811,9 +5815,9 @@ ctermul={color-nr} *highlight-ctermul*
|
|
| 5811 |
"fg" and "bg" colors will not be adjusted.
|
| 5812 |
|
| 5813 |
ctermfont={font-nr} *highlight-ctermfont*
|
| 5814 |
-
This gives the alternative font number to use in the terminal.
|
| 5815 |
available fonts depend on the terminal, and if the terminal is not set
|
| 5816 |
-
up for alternative fonts this simply won't do anything.
|
| 5817 |
{font-nr} is 0-10 where 0 resets the font to the default font, 1-9
|
| 5818 |
selects one of the 9 alternate fonts, and 10 selects the Fraktur font.
|
| 5819 |
For more information see your terminal's handling of SGR parameters
|
|
@@ -5907,10 +5911,10 @@ guisp={color-name} *highlight-guisp*
|
|
| 5907 |
colorscheme alt
|
| 5908 |
<
|
| 5909 |
If you want to develop a color list that can be relied on by others,
|
| 5910 |
-
it is best to prefix your color names.
|
| 5911 |
-
are placed in the colors/lists directory.
|
| 5912 |
-
'$VIMRUNTIME/colors/lists/csscolors.vim'.
|
| 5913 |
-
by a color scheme using: >
|
| 5914 |
|
| 5915 |
:runtime colors/lists/csscolors.vim
|
| 5916 |
:highlight Comment guifg=css_turquoise
|
|
@@ -5936,7 +5940,8 @@ lCursor Character under the cursor when |language-mapping|
|
|
| 5936 |
*hl-CursorIM*
|
| 5937 |
CursorIM Like Cursor, but used when in IME mode. |CursorIM|
|
| 5938 |
*hl-CursorColumn*
|
| 5939 |
-
CursorColumn Screen column that the cursor is in when 'cursorcolumn' is
|
|
|
|
| 5940 |
*hl-CursorLine*
|
| 5941 |
CursorLine Screen line that the cursor is in when 'cursorline' is set.
|
| 5942 |
*hl-Directory*
|
|
@@ -6022,10 +6027,10 @@ PmenuSbar Popup menu: Scrollbar.
|
|
| 6022 |
*hl-PmenuThumb*
|
| 6023 |
PmenuThumb Popup menu: Thumb of the scrollbar.
|
| 6024 |
*hl-PmenuMatch*
|
| 6025 |
-
PmenuMatch Popup menu: Matched text in normal item.
|
| 6026 |
combination with |hl-Pmenu|.
|
| 6027 |
*hl-PmenuMatchSel*
|
| 6028 |
-
PmenuMatchSel Popup menu: Matched text in selected item.
|
| 6029 |
combination with |hl-PmenuSel|.
|
| 6030 |
*hl-PmenuBorder*
|
| 6031 |
PmenuBorder Popup menu: Border characters.
|
|
@@ -6328,12 +6333,12 @@ And put these lines in your .vimrc: >
|
|
| 6328 |
==============================================================================
|
| 6329 |
18. Window-local syntax *:ownsyntax*
|
| 6330 |
|
| 6331 |
-
Normally all windows on a buffer share the same syntax settings.
|
| 6332 |
possible, however, to set a particular window on a file to have its own
|
| 6333 |
-
private syntax setting.
|
| 6334 |
with conventional highlighting in one window, while seeing the same source
|
| 6335 |
highlighted differently (so as to hide control sequences and indicate bold,
|
| 6336 |
-
italic etc regions) in another.
|
| 6337 |
|
| 6338 |
To set the current window to have the syntax "foo", separately from all other
|
| 6339 |
windows on the buffer: >
|
|
@@ -6348,7 +6353,7 @@ Note: This resets the 'spell', 'spellcapcheck', 'spellfile' and 'spelloptions'
|
|
| 6348 |
options.
|
| 6349 |
|
| 6350 |
Once a window has its own syntax, syntax commands executed from other windows
|
| 6351 |
-
on the same buffer (including :syntax clear) have no effect.
|
| 6352 |
syntax commands executed from that window do not affect other windows on the
|
| 6353 |
same buffer.
|
| 6354 |
|
|
@@ -6533,7 +6538,7 @@ it took to match them against the text.
|
|
| 6533 |
current window. Use a wider display to see more of
|
| 6534 |
the output.
|
| 6535 |
|
| 6536 |
-
The list is sorted by total time.
|
| 6537 |
TOTAL Total time in seconds spent on
|
| 6538 |
matching this pattern.
|
| 6539 |
COUNT Number of times the pattern was used.
|
|
|
|
| 380 |
4. Conversion to HTML *2html.vim* *convert-to-HTML*
|
| 381 |
|
| 382 |
2html is not a syntax file itself, but a script that converts the current
|
| 383 |
+
window into HTML. Vim opens a new window in which it builds the HTML file.
|
| 384 |
|
| 385 |
+
After you save the resulting file, you can view it with any browser. The
|
| 386 |
colors should be exactly the same as you see them in Vim. With
|
| 387 |
|g:html_line_ids| you can jump to specific lines by adding (for example) #L123
|
| 388 |
+
or #123 to the end of the URL in your browser's address bar. And with
|
| 389 |
|g:html_dynamic_folds| enabled, you can show or hide the text that is folded
|
| 390 |
in Vim.
|
| 391 |
|
|
|
|
| 394 |
|
| 395 |
:runtime! syntax/2html.vim
|
| 396 |
<
|
| 397 |
+
Many variables affect the output of 2html.vim; see below. Any of the on/off
|
| 398 |
options listed below can be enabled or disabled by setting them explicitly to
|
| 399 |
the desired value, or restored to their default by removing the variable using
|
| 400 |
|:unlet|.
|
|
|
|
| 421 |
<
|
| 422 |
*:TOhtml*
|
| 423 |
:[range]TOhtml The ":TOhtml" command is defined in a standard plugin.
|
| 424 |
+
This command will source |2html.vim| for you. When a
|
| 425 |
range is given, this command sets |g:html_start_line|
|
| 426 |
and |g:html_end_line| to the start and end of the
|
| 427 |
+
range, respectively. Default range is the entire
|
| 428 |
buffer.
|
| 429 |
|
| 430 |
If the current window is part of a |diff|, unless
|
| 431 |
|g:html_diff_one_file| is set, :TOhtml will convert
|
| 432 |
all windows which are part of the diff in the current
|
| 433 |
tab and place them side-by-side in a <table> element
|
| 434 |
+
in the generated HTML. With |g:html_line_ids| you can
|
| 435 |
jump to lines in specific windows with (for example)
|
| 436 |
#W1L42 for line 42 in the first diffed window, or
|
| 437 |
#W3L87 for line 87 in the third.
|
|
|
|
| 445 |
*g:html_diff_one_file*
|
| 446 |
Default: 0.
|
| 447 |
When 0, and using |:TOhtml| all windows involved in a |diff| in the current tab
|
| 448 |
+
page are converted to HTML and placed side-by-side in a <table> element. When
|
| 449 |
1, only the current buffer is converted.
|
| 450 |
Example: >
|
| 451 |
|
|
|
|
| 465 |
Default: 0.
|
| 466 |
When 0, display a progress bar in the statusline for each major step in the
|
| 467 |
2html.vim conversion process.
|
| 468 |
+
When 1, do not display the progress bar. This offers a minor speed
|
| 469 |
+
improvement but you won't have any idea how much longer the conversion might
|
| 470 |
+
take; for big files it can take a long time!
|
| 471 |
Example: >
|
| 472 |
|
| 473 |
let g:html_no_progress = 1
|
|
|
|
| 480 |
<
|
| 481 |
Note that the -s flag prevents loading your .vimrc and any plugins, so you
|
| 482 |
need to explicitly source/enable anything that will affect the HTML
|
| 483 |
+
conversion. See |-E| and |-s-ex| for details. It is probably best to create a
|
| 484 |
script to replace all the -c commands and use it with the -u flag instead of
|
| 485 |
specifying each command separately.
|
| 486 |
|
| 487 |
*hl-TOhtmlProgress* *TOhtml-progress-color*
|
| 488 |
When displayed, the progress bar will show colored boxes along the statusline
|
| 489 |
+
as the HTML conversion proceeds. By default, the background color as the
|
| 490 |
+
current "DiffDelete" highlight group is used. If "DiffDelete" and "StatusLine"
|
| 491 |
have the same background color, TOhtml will automatically adjust the color to
|
| 492 |
+
differ. If you do not like the automatically selected colors, you can define
|
| 493 |
+
your own highlight colors for the progress bar. Example: >
|
| 494 |
|
| 495 |
hi TOhtmlProgress guifg=#c0ffee ctermbg=7
|
| 496 |
<
|
|
|
|
| 509 |
*g:html_line_ids*
|
| 510 |
Default: 1 if |g:html_number_lines| is set, 0 otherwise.
|
| 511 |
When 1, adds an HTML id attribute to each line number, or to an empty <span>
|
| 512 |
+
inserted for that purpose if no line numbers are shown. This ID attribute
|
| 513 |
takes the form of L123 for single-buffer HTML pages, or W2L123 for diff-view
|
| 514 |
pages, and is used to jump to a specific line (in a specific window of a diff
|
| 515 |
+
view). Javascript is inserted to open any closed dynamic folds
|
| 516 |
+
(|g:html_dynamic_folds|) containing the specified line before jumping. The
|
| 517 |
javascript also allows omitting the window ID in the url, and the leading L.
|
| 518 |
For example: >
|
| 519 |
|
|
|
|
| 527 |
Default: 1.
|
| 528 |
When 1, generate valid HTML 5 markup with CSS styling, supported in all modern
|
| 529 |
browsers and many old browsers.
|
| 530 |
+
When 0, generate <font> tags and similar outdated markup. This is not
|
| 531 |
recommended but it may work better in really old browsers, email clients,
|
| 532 |
forum posts, and similar situations where basic CSS support is unavailable.
|
| 533 |
Example: >
|
|
|
|
| 549 |
*g:html_ignore_folding*
|
| 550 |
Default: 0.
|
| 551 |
When 0, text in a closed fold is replaced by the text shown for the fold in
|
| 552 |
+
Vim (|fold-foldtext|). See |g:html_dynamic_folds| if you also want to allow
|
| 553 |
the user to expand the fold as in Vim to see the text inside.
|
| 554 |
When 1, include all text from the buffer in the generated HTML; whether the
|
| 555 |
+
text is in a fold has no impact at all. |g:html_dynamic_folds| has no effect.
|
| 556 |
|
| 557 |
Either of these commands will ensure that all text in the buffer is included
|
| 558 |
in the generated HTML (unless it is concealed): >
|
|
|
|
| 576 |
Default: 0.
|
| 577 |
When 0, if |g:html_dynamic_folds| is 1, generate a column of text similar to
|
| 578 |
Vim's foldcolumn (|fold-foldcolumn|) the user can click on to toggle folds
|
| 579 |
+
open or closed. The minimum width of the generated text column is the current
|
| 580 |
'foldcolumn' setting.
|
| 581 |
When 1, do not generate this column; instead, hovering the mouse cursor over
|
| 582 |
folded text will open the fold as if |g:html_hover_unfold| were set.
|
|
|
|
| 586 |
*TOhtml-uncopyable-text* *g:html_prevent_copy*
|
| 587 |
Default: Empty string.
|
| 588 |
This option prevents certain regions of the generated HTML from being copied,
|
| 589 |
+
when you select all text in document rendered in a browser and copy it.
|
| 590 |
+
Useful for allowing users to copy-paste only the source text even if a fold
|
| 591 |
+
column or line numbers are shown in the generated content. Specify regions to
|
| 592 |
+
be affected in this way as follows:
|
| 593 |
f: fold column
|
| 594 |
n: line numbers (also within fold text)
|
| 595 |
t: fold text
|
|
|
|
| 606 |
If |g:html_prevent_copy| is non-empty, then:
|
| 607 |
|
| 608 |
When "all", read-only <input> elements are used in place of normal text for
|
| 609 |
+
uncopyable regions. In some browsers, especially older browsers, after
|
| 610 |
selecting an entire page and copying the selection, the <input> tags are not
|
| 611 |
+
pasted with the page text. If |g:html_no_invalid| is 0, the <input> tags have
|
| 612 |
invalid type; this works in more browsers, but the page will not validate.
|
| 613 |
Note: This method does NOT work in recent versions of Chrome and equivalent
|
| 614 |
browsers; the <input> tags get pasted with the text.
|
|
|
|
| 616 |
When "fallback" (default value), the same <input> elements are generated for
|
| 617 |
older browsers, but newer browsers (detected by CSS feature query) hide the
|
| 618 |
<input> elements and instead use generated content in an ::before pseudoelement
|
| 619 |
+
to display the uncopyable text. This method should work with the largest
|
| 620 |
number of browsers, both old and new.
|
| 621 |
|
| 622 |
+
When "none", the <input> elements are not generated at all. Only the
|
| 623 |
+
generated-content method is used. This means that old browsers, notably
|
| 624 |
Internet Explorer, will either copy the text intended not to be copyable, or
|
| 625 |
+
the non-copyable text may not appear at all. However, this is the most
|
| 626 |
standards-based method, and there will be much less markup.
|
| 627 |
|
| 628 |
*g:html_no_invalid*
|
| 629 |
Default: 0.
|
| 630 |
When 0, if |g:html_prevent_copy| is non-empty and |g:html_use_input_for_pc| is
|
| 631 |
not "none", an invalid attribute is intentionally inserted into the <input>
|
| 632 |
+
element for the uncopyable areas. This prevents pasting the <input> elements
|
| 633 |
+
in some applications. Specifically, some versions of Microsoft Word will not
|
| 634 |
+
paste the <input> elements if they contain this invalid attribute. When 1, no
|
| 635 |
+
invalid markup is inserted, and the generated page should validate. However,
|
| 636 |
<input> elements may be pasted into some applications and can be difficult to
|
| 637 |
remove afterward.
|
| 638 |
|
|
|
|
| 641 |
When 0, the only way to open a fold generated by 2html.vim with
|
| 642 |
|g:html_dynamic_folds| set, is to click on the generated fold column.
|
| 643 |
When 1, use CSS 2.0 to allow the user to open a fold by moving the mouse
|
| 644 |
+
cursor over the displayed fold text. This is useful to allow users with
|
| 645 |
disabled javascript to view the folded text.
|
| 646 |
|
| 647 |
Note that old browsers (notably Internet Explorer 6) will not support this
|
|
|
|
| 654 |
*g:html_id_expr*
|
| 655 |
Default: ""
|
| 656 |
Dynamic folding and jumping to line IDs rely on unique IDs within the document
|
| 657 |
+
to work. If generated HTML is copied into a larger document, these IDs are no
|
| 658 |
+
longer guaranteed to be unique. Set g:html_id_expr to an expression Vim can
|
| 659 |
evaluate to get a unique string to append to each ID used in a given document,
|
| 660 |
so that the full IDs will be unique even when combined with other content in a
|
| 661 |
+
larger HTML document. Example, to append _ and the buffer number to each ID: >
|
| 662 |
|
| 663 |
:let g:html_id_expr = '"_" .. bufnr("%")'
|
| 664 |
<
|
|
|
|
| 687 |
*g:html_no_pre*
|
| 688 |
Default: 0.
|
| 689 |
When 0, buffer text in the generated HTML is surrounded by <pre>...</pre>
|
| 690 |
+
tags. Series of whitespace is shown as in Vim without special markup, and tab
|
| 691 |
characters can be included literally (see |g:html_expand_tabs|).
|
| 692 |
When 1 (not recommended), the <pre> tags are omitted, and a plain <div> is
|
| 693 |
+
used instead. Whitespace is replaced by a series of character
|
| 694 |
+
references, and <br> is used to end each line. This is another way to allow
|
| 695 |
text in the generated HTML is wrap (see |g:html_pre_wrap|) which also works in
|
| 696 |
old browsers, but may cause noticeable differences between Vim's display and
|
| 697 |
the rendered page generated by 2html.vim.
|
|
|
|
| 701 |
*g:html_no_doc*
|
| 702 |
Default: 0.
|
| 703 |
When 1 it doesn't generate a full HTML document with a DOCTYPE, <head>,
|
| 704 |
+
<body>, etc. If |g:html_use_css| is enabled (the default) you'll have to
|
| 705 |
+
define the CSS manually. The |g:html_dynamic_folds| and |g:html_line_ids|
|
| 706 |
settings (off by default) also insert some JavaScript.
|
| 707 |
|
| 708 |
|
|
|
|
| 721 |
When 1, <Tab> characters in the buffer text are replaced with an appropriate
|
| 722 |
number of space characters, or references if |g:html_no_pre| is 1.
|
| 723 |
When 0, if |g:html_no_pre| is 0 or unset, <Tab> characters in the buffer text
|
| 724 |
+
are included as-is in the generated HTML. This is useful for when you want to
|
| 725 |
allow copy and paste from a browser without losing the actual whitespace in
|
| 726 |
+
the source document. Note that this can easily break text alignment and
|
| 727 |
indentation in the HTML, unless set by default.
|
| 728 |
|
| 729 |
Force |2html.vim| to keep <Tab> characters: >
|
|
|
|
| 738 |
|
| 739 |
If you do not specify an encoding, |2html.vim| uses the preferred IANA name
|
| 740 |
for the current value of 'fileencoding' if set, or 'encoding' if not.
|
| 741 |
+
'encoding' is always used for certain 'buftype' values. 'fileencoding' will
|
| 742 |
+
be set to match the chosen document encoding.
|
| 743 |
|
| 744 |
Automatic detection works for the encodings mentioned specifically by name in
|
| 745 |
|encoding-names|, but TOhtml will only automatically use those encodings with
|
| 746 |
+
wide browser support. However, you can override this to support specific
|
| 747 |
encodings that may not be automatically detected by default (see options
|
| 748 |
+
below). See http://www.iana.org/assignments/character-sets for the IANA
|
| 749 |
+
names.
|
| 750 |
|
| 751 |
Note: By default all Unicode encodings are converted to UTF-8 with no BOM in
|
| 752 |
the generated HTML, as recommended by W3C:
|
|
|
|
| 757 |
*g:html_use_encoding*
|
| 758 |
Default: none, uses IANA name for current 'fileencoding' as above.
|
| 759 |
To overrule all automatic charset detection, set g:html_use_encoding to the
|
| 760 |
+
name of the charset to be used. It is recommended to set this variable to
|
| 761 |
something widely supported, like UTF-8, for anything you will be hosting on a
|
| 762 |
webserver: >
|
| 763 |
:let g:html_use_encoding = "UTF-8"
|
|
|
|
| 786 |
mentioned by name at |encoding-names| and which have wide
|
| 787 |
browser support.
|
| 788 |
This option allows |2html.vim| to detect the HTML charset for any
|
| 789 |
+
'fileencoding' or 'encoding' which is not detected automatically. You can
|
| 790 |
+
also use it to override specific existing encoding-charset pairs. For
|
| 791 |
+
example, TOhtml will by default use UTF-8 for all Unicode/UCS encodings. To
|
| 792 |
+
use UTF-16 and UTF-32 instead, use: >
|
| 793 |
:let g:html_charset_override = {'ucs-4': 'UTF-32', 'utf-16': 'UTF-16'}
|
| 794 |
|
| 795 |
Note that documents encoded in either UTF-32 or UTF-16 have known
|
|
|
|
| 798 |
*g:html_font*
|
| 799 |
Default: "monospace"
|
| 800 |
You can specify the font or fonts used in the converted document using
|
| 801 |
+
g:html_font. If this option is set to a string, then the value will be
|
| 802 |
+
surrounded with single quotes. If this option is set to a list then each list
|
| 803 |
+
item is surrounded by single quotes and the list is joined with commas.
|
| 804 |
+
Either way, "monospace" is added as the fallback generic family name and the
|
| 805 |
+
entire result used as the font family (using CSS) or font face (if not using
|
| 806 |
+
CSS). Examples: >
|
| 807 |
|
| 808 |
" font-family: 'Consolas', monospace;
|
| 809 |
:let g:html_font = "Consolas"
|
|
|
|
| 877 |
ASSEMBLY *ft-asm-syntax* *ft-asmh8300-syntax* *ft-nasm-syntax*
|
| 878 |
*ft-masm-syntax* *ft-asm68k-syntax* *fasm.vim*
|
| 879 |
|
| 880 |
+
Files matching "*.i" could be Progress or Assembly. If the automatic
|
| 881 |
+
detection doesn't work for you, or you don't edit Progress at all, use this in
|
| 882 |
+
your startup vimrc: >
|
| 883 |
:let filetype_i = "asm"
|
| 884 |
Replace "asm" with the type of assembly you use.
|
| 885 |
|
|
|
|
| 894 |
ia64 Intel Itanium 64
|
| 895 |
fasm Flat assembly (http://flatassembler.net)
|
| 896 |
masm Microsoft assembly (.masm files are compiled with
|
| 897 |
+
Microsoft's Macro Assembler. This is only supported
|
| 898 |
for x86, x86_64, ARM and AARCH64 CPU families)
|
| 899 |
nasm Netwide assembly
|
| 900 |
tasm Turbo Assembly (with opcodes 80x86 up to Pentium, and
|
|
|
|
| 966 |
|
| 967 |
ASYMPTOTE *asy.vim* *ft-asy-syntax*
|
| 968 |
|
| 969 |
+
By default, only basic Asymptote keywords are highlighted. To highlight
|
| 970 |
extended geometry keywords: >
|
| 971 |
|
| 972 |
:let g:asy_syn_plain = 1
|
|
|
|
| 975 |
|
| 976 |
:let g:asy_syn_three = 1
|
| 977 |
|
| 978 |
+
By default, Asymptote-defined colors (e.g: lightblue) are highlighted. To
|
| 979 |
highlight TeX-defined colors (e.g: BlueViolet) use: >
|
| 980 |
|
| 981 |
:let g:asy_syn_texcolors = 1
|
|
|
|
| 987 |
BAAN *baan.vim* *baan-syntax*
|
| 988 |
|
| 989 |
The baan.vim gives syntax support for BaanC of release BaanIV up to SSA ERP LN
|
| 990 |
+
for both 3 GL and 4 GL programming. Large number of standard
|
| 991 |
+
defines/constants are supported.
|
| 992 |
|
| 993 |
Some special violation of coding standards will be signalled when one specify
|
| 994 |
in ones |.vimrc|: >
|
|
|
|
| 997 |
*baan-folding*
|
| 998 |
|
| 999 |
Syntax folding can be enabled at various levels through the variables
|
| 1000 |
+
mentioned below (Set those in your |.vimrc|). The more complex folding on
|
| 1001 |
source blocks and SQL can be CPU intensive.
|
| 1002 |
|
| 1003 |
To allow any folding and enable folding at function level use: >
|
|
|
|
| 1010 |
SELECTEMPTY, ... The indentation preceding the begin/end keywords has to
|
| 1011 |
match (spaces are not considered equal to a tab). >
|
| 1012 |
let baan_fold_sql=1
|
| 1013 |
+
Note: Block folding can result in many small folds. It is suggested to |:set|
|
| 1014 |
the options 'foldminlines' and 'foldnestmax' in |.vimrc| or use |:setlocal| in
|
| 1015 |
+
.../after/syntax/baan.vim (see |after-directory|). Eg: >
|
| 1016 |
set foldminlines=5
|
| 1017 |
set foldnestmax=6
|
| 1018 |
|
|
|
|
| 1063 |
*c_syntax_for_h* use C syntax for *.h files instead of C++/ObjC/ObjC++
|
| 1064 |
(NOTE: This variable is deprecated and no longer
|
| 1065 |
necessary, as *.h files now default to C, unless the
|
| 1066 |
+
file contains C++ or Objective-C syntax. If the
|
| 1067 |
automated detection fails, the default filetype can
|
| 1068 |
be adjusted using `g:filetype_h`.)
|
| 1069 |
*c_no_if0* don't highlight "#if 0" blocks as comments
|
|
|
|
| 1274 |
CSV *ft-csv-syntax*
|
| 1275 |
|
| 1276 |
If you change the delimiter of a CSV file, its syntax highlighting will no
|
| 1277 |
+
longer match the changed file content. You will need to unlet the following
|
| 1278 |
variable: >
|
| 1279 |
|
| 1280 |
:unlet b:csv_delimiter
|
|
|
|
| 1290 |
CYNLIB *cynlib.vim* *ft-cynlib-syntax*
|
| 1291 |
|
| 1292 |
Cynlib files are C++ files that use the Cynlib class library to enable
|
| 1293 |
+
hardware modelling and simulation using C++. Typically Cynlib files have a
|
| 1294 |
+
.cc or a .cpp extension, which makes it very difficult to distinguish them
|
| 1295 |
+
from a normal C++ file. Thus, to enable Cynlib highlighting for .cc files,
|
| 1296 |
+
add this line to your .vimrc file: >
|
| 1297 |
|
| 1298 |
:let cynlib_cyntax_for_cc=1
|
| 1299 |
|
|
|
|
| 1333 |
DART *dart.vim* *ft-dart-syntax*
|
| 1334 |
|
| 1335 |
Dart is an object-oriented, typed, class defined, garbage collected language
|
| 1336 |
+
used for developing mobile, desktop, web, and back-end applications. Dart
|
| 1337 |
+
uses a C-like syntax derived from C, Java, and JavaScript, with features
|
| 1338 |
+
adopted from Smalltalk, Python, Ruby, and others.
|
| 1339 |
|
| 1340 |
More information about the language and its development environment at the
|
| 1341 |
official Dart language website at https://dart.dev
|
|
|
|
| 1451 |
(similar to Javadoc). This syntax script adds doxygen highlighting to c, cpp,
|
| 1452 |
idl and php files, and should also work with java.
|
| 1453 |
|
| 1454 |
+
There are a few of ways to turn on doxygen formatting. It can be done
|
| 1455 |
explicitly or in a modeline by appending '.doxygen' to the syntax of the file.
|
| 1456 |
Example: >
|
| 1457 |
:set syntax=c.doxygen
|
|
|
|
| 1559 |
|
| 1560 |
EUPHORIA *euphoria3.vim* *euphoria4.vim* *ft-euphoria-syntax*
|
| 1561 |
|
| 1562 |
+
Two syntax highlighting files exist for Euphoria. One for Euphoria
|
| 1563 |
version 3.1.1, which is the default syntax highlighting file, and one for
|
| 1564 |
Euphoria version 4.0.5 or later.
|
| 1565 |
|
|
|
|
| 1585 |
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
| 1586 |
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
| 1587 |
file is determined to be Euphoria based on keywords in the file, then the
|
| 1588 |
+
filetype will be set as Euphoria. Otherwise, the filetype will default to
|
| 1589 |
Elixir.
|
| 1590 |
|
| 1591 |
|
|
|
|
| 1645 |
|
| 1646 |
*.ex, *.exs, *.eex, *.leex, *.lock
|
| 1647 |
|
| 1648 |
+
Elixir and Euphoria share the *.ex file extension. If the filetype is
|
| 1649 |
specifically set as Euphoria with the g:filetype_euphoria variable, or the
|
| 1650 |
file is determined to be Euphoria based on keywords in the file, then the
|
| 1651 |
+
filetype will be set as Euphoria. Otherwise, the filetype will default to
|
| 1652 |
Elixir.
|
| 1653 |
|
| 1654 |
|
|
|
|
| 1660 |
development stopped in 2009.
|
| 1661 |
|
| 1662 |
Syntax highlighting is available for the most common elements of FlexWiki
|
| 1663 |
+
syntax. The associated ftplugin script sets some buffer-local options to make
|
| 1664 |
+
editing FlexWiki pages more convenient. FlexWiki considers a newline as the
|
| 1665 |
start of a new paragraph, so the ftplugin sets 'tw'=0 (unlimited line length),
|
| 1666 |
'wrap' (wrap long lines instead of using horizontal scrolling), 'linebreak'
|
| 1667 |
(to wrap at a character in 'breakat' instead of at the last char on screen),
|
| 1668 |
+
and so on. It also includes some keymaps that are disabled by default.
|
| 1669 |
|
| 1670 |
If you want to enable the keymaps that make "j" and "k" and the cursor keys
|
| 1671 |
move up and down by display lines, add this to your .vimrc: >
|
|
|
|
| 1726 |
FORTRAN *fortran.vim* *ft-fortran-syntax*
|
| 1727 |
|
| 1728 |
Default highlighting and dialect ~
|
| 1729 |
+
Vim highlights according to Fortran 2023 (the most recent standard). This
|
| 1730 |
choice should be appropriate for most users most of the time because Fortran
|
| 1731 |
2023 is almost a superset of previous versions (Fortran 2018, 2008, 2003, 95,
|
| 1732 |
90, 77, and 66). A few legacy constructs deleted or declared obsolescent,
|
|
|
|
| 1751 |
|
| 1752 |
If the form of the source code depends, in a non-standard way, upon the file
|
| 1753 |
extension, then it is most convenient to set fortran_free_source in a ftplugin
|
| 1754 |
+
file. For more information on ftplugin files, see |ftplugin|. Note that this
|
| 1755 |
will work only if the "filetype plugin indent on" command precedes the "syntax
|
| 1756 |
on" command in your .vimrc file.
|
| 1757 |
|
| 1758 |
When you edit an existing Fortran file, the syntax script will assume free
|
| 1759 |
source form if the fortran_free_source variable has been set, and assumes
|
| 1760 |
fixed source form if the fortran_fixed_source variable has been set. Suppose
|
| 1761 |
+
neither of these variables have been set. In that case, the syntax script
|
| 1762 |
attempts to determine which source form has been used by examining the file
|
| 1763 |
extension using conventions common to the ifort, gfortran, Cray, NAG, and
|
| 1764 |
PathScale compilers (.f, .for, .f77 for fixed-source, .f90, .f95, .f03, .f08
|
| 1765 |
for free-source). No default is used for the .fpp and .ftn file extensions
|
| 1766 |
+
because different compilers treat them differently. If none of this works,
|
| 1767 |
then the script examines the first five columns of the first 500 lines of your
|
| 1768 |
+
file. If no signs of free source form are detected, then the file is assumed
|
| 1769 |
to be in fixed source form. The algorithm should work in the vast majority of
|
| 1770 |
cases. In some cases, such as a file that begins with 500 or more full-line
|
| 1771 |
comments, the script may incorrectly decide that the code is in fixed form.
|
|
|
|
| 1810 |
to instruct the syntax script to define fold regions for program units, that
|
| 1811 |
is main programs starting with a program statement, subroutines, function
|
| 1812 |
subprograms, modules, submodules, blocks of comment lines, and block data
|
| 1813 |
+
units. Block, interface, associate, critical, type definition, and change
|
| 1814 |
+
team constructs will also be folded. If you also set the variable
|
| 1815 |
fortran_fold_conditionals with a command such as >
|
| 1816 |
:let fortran_fold_conditionals=1
|
| 1817 |
then fold regions will also be defined for do loops, if blocks, select case,
|
|
|
|
| 2292 |
*g:vim_json_warnings*
|
| 2293 |
|
| 2294 |
The json syntax file provides syntax highlighting with conceal support by
|
| 2295 |
+
default. To disable concealment: >
|
| 2296 |
let g:vim_json_conceal = 0
|
| 2297 |
|
| 2298 |
To disable syntax highlighting of errors: >
|
|
|
|
| 2448 |
|
| 2449 |
LUA *lua.vim* *ft-lua-syntax*
|
| 2450 |
|
| 2451 |
+
The Lua syntax file can be used for versions 4.0, 5.0+. You can select one of
|
| 2452 |
these versions using the global variables |g:lua_version| and
|
| 2453 |
|g:lua_subversion|.
|
| 2454 |
|
|
|
|
| 2456 |
MAIL *mail.vim* *ft-mail.vim*
|
| 2457 |
|
| 2458 |
Vim highlights all the standard elements of an email (headers, signatures,
|
| 2459 |
+
quoted text and URLs / email addresses). In keeping with standard
|
| 2460 |
+
conventions, signatures begin in a line containing only "--" followed
|
| 2461 |
+
optionally by whitespaces and end with a newline.
|
| 2462 |
|
| 2463 |
Vim treats lines beginning with ']', '}', '|', '>' or a word followed by '>'
|
| 2464 |
as quoted text. However Vim highlights headers and signatures in quoted text
|
|
|
|
| 2499 |
|
| 2500 |
Maple V, by Waterloo Maple Inc, supports symbolic algebra. The language
|
| 2501 |
supports many packages of functions which are selectively loaded by the user.
|
| 2502 |
+
The standard set of packages' functions as supplied in Maple V release 4 may
|
| 2503 |
+
be highlighted at the user's discretion. Users may place in their .vimrc
|
| 2504 |
+
file: >
|
| 2505 |
|
| 2506 |
:let mvpkg_all= 1
|
| 2507 |
|
|
|
|
| 2555 |
MBSYNC *mbsync.vim* *ft-mbsync-syntax*
|
| 2556 |
|
| 2557 |
The mbsync application uses a configuration file to setup mailboxes names,
|
| 2558 |
+
user and password. All files ending with `.mbsyncrc` or with the name
|
| 2559 |
`isyncrc` will be recognized as mbsync configuration files.
|
| 2560 |
|
| 2561 |
MEDIAWIKI *ft-mediawiki-syntax*
|
| 2562 |
|
| 2563 |
By default, syntax highlighting includes basic HTML tags like style and
|
| 2564 |
+
headers |html.vim|. For strict Mediawiki syntax highlighting: >
|
| 2565 |
|
| 2566 |
let g:html_no_rendering = 1
|
| 2567 |
|
|
|
|
| 2589 |
m2pim = 'm2pim', m2iso = 'm2iso', m2r10 = 'm2r10'
|
| 2590 |
|
| 2591 |
A dialect tag comment is recognised by Vim if it occurs within the first 200
|
| 2592 |
+
lines of the source file. Only the very first such comment is recognised, any
|
| 2593 |
additional dialect tag comments are ignored.
|
| 2594 |
|
| 2595 |
Example: >
|
|
|
|
| 2794 |
|
| 2795 |
:let g:filetype_md = 'pandoc'
|
| 2796 |
|
| 2797 |
+
The pandoc syntax plugin uses |conceal| for pretty highlighting. Default is 1 >
|
| 2798 |
|
| 2799 |
:let g:pandoc#syntax#conceal#use = 1
|
| 2800 |
|
|
|
|
| 2823 |
- inlinecode
|
| 2824 |
- inlinemath
|
| 2825 |
|
| 2826 |
+
You can customize the way concealing works. For example, if you prefer to
|
| 2827 |
+
mark footnotes with the `*` symbol: >
|
| 2828 |
|
| 2829 |
:let g:pandoc#syntax#conceal#cchar_overrides = {"footnote" : "*"}
|
| 2830 |
|
|
|
|
| 2844 |
:let g:pandoc#syntax#codeblocks#embeds#use = 1
|
| 2845 |
|
| 2846 |
For specify what languages and using what syntax files to highlight embeds.
|
| 2847 |
+
This is a list of language names. When the language pandoc and vim use don't
|
| 2848 |
+
match, you can use the "PANDOC=VIM" syntax. For example: >
|
| 2849 |
|
| 2850 |
:let g:pandoc#syntax#codeblocks#embeds#langs = ["ruby", "bash=sh"]
|
| 2851 |
|
|
|
|
| 2860 |
|
| 2861 |
:let g:pandoc#syntax#style#underline_special = 1
|
| 2862 |
|
| 2863 |
+
Detect and highlight definition lists. Disabling this can improve
|
| 2864 |
+
performance. Default = 1 (i.e., enabled by default) >
|
| 2865 |
|
| 2866 |
:let g:pandoc#syntax#style#use_definition_lists = 1
|
| 2867 |
|
|
|
|
| 2869 |
|
| 2870 |
:PandocHighlight LANG
|
| 2871 |
|
| 2872 |
+
Enables embedded highlighting for language LANG in codeblocks. Uses the
|
| 2873 |
syntax for items in g:pandoc#syntax#codeblocks#embeds#langs. >
|
| 2874 |
|
| 2875 |
:PandocUnhighlight LANG
|
|
|
|
| 3282 |
R *r.vim* *ft-r-syntax*
|
| 3283 |
|
| 3284 |
The parsing of R code for syntax highlight starts 40 lines backwards, but you
|
| 3285 |
+
can set a different value in your |vimrc|. Example: >
|
| 3286 |
let r_syntax_minlines = 60
|
| 3287 |
|
| 3288 |
You can also turn off syntax highlighting of ROxygen: >
|
|
|
|
| 3308 |
let rmd_syn_hl_chunk = 1
|
| 3309 |
|
| 3310 |
By default, chunks of R code will be highlighted following the rules of R
|
| 3311 |
+
language. Moreover, whenever the buffer is saved, Vim scans the buffer and
|
| 3312 |
+
highlights other languages if they are present in new chunks. LaTeX code also
|
| 3313 |
+
is automatically recognized and highlighted when the buffer is saved. This
|
| 3314 |
behavior can be controlled with the variables `rmd_dynamic_fenced_languages`,
|
| 3315 |
and `rmd_include_latex` whose valid values are: >
|
| 3316 |
let rmd_dynamic_fenced_languages = 0 " No autodetection of languages
|
|
|
|
| 3333 |
|
| 3334 |
RASI *rasi.vim* *ft-rasi-syntax*
|
| 3335 |
|
| 3336 |
+
Rasi stands for Rofi Advanced Style Information. It is used by the program
|
| 3337 |
+
rofi to style the rendering of the search window. The language is heavily
|
| 3338 |
+
inspired by CSS stylesheet. Files with the following extensions are
|
| 3339 |
+
recognized as rasi files: .rasi.
|
| 3340 |
|
| 3341 |
READLINE *readline.vim* *ft-readline-syntax*
|
| 3342 |
|
|
|
|
| 3688 |
Sh: EMBEDDING LANGUAGES~
|
| 3689 |
|
| 3690 |
You may wish to embed languages into sh. I'll give an example courtesy of
|
| 3691 |
+
Lorance Stinson on how to do this with awk as an example. Put the following
|
| 3692 |
file into $HOME/.vim/after/syntax/sh/awkembed.vim: >
|
| 3693 |
|
| 3694 |
" AWK Embedding:
|
|
|
|
| 3785 |
|
| 3786 |
This will make the syntax synchronization start 1000 lines before the first
|
| 3787 |
displayed line. If you set "tcsh_minlines" to "fromstart", then
|
| 3788 |
+
synchronization is done from the start of the file. The default value for
|
| 3789 |
tcsh_minlines is 100. The disadvantage of using a larger number is that
|
| 3790 |
redrawing can become slow.
|
| 3791 |
|
|
|
|
| 3994 |
*g:tex_isk* *g:tex_stylish*
|
| 3995 |
Tex: Controlling iskeyword~
|
| 3996 |
|
| 3997 |
+
Normally, LaTeX keywords support 0-9, a-z, A-z, and 192-255 only. Latex
|
| 3998 |
keywords don't support the underscore - except when in *.sty files. The
|
| 3999 |
syntax highlighting script handles this with the following logic:
|
| 4000 |
|
|
|
|
| 4047 |
< If you don't want matching to occur inside bold and italicized
|
| 4048 |
regions, >
|
| 4049 |
let g:tex_excludematcher= 1
|
| 4050 |
+
< will prevent the texMatcher group from being included in those
|
| 4051 |
+
regions.
|
| 4052 |
|
| 4053 |
TF *tf.vim* *ft-tf-syntax*
|
| 4054 |
|
|
|
|
| 4066 |
|
| 4067 |
*g:typescript_host_keyword*
|
| 4068 |
When this variable is set to 1, host-specific APIs such as `addEventListener`
|
| 4069 |
+
are highlighted. To disable set it to zero in your .vimrc: >
|
| 4070 |
|
| 4071 |
let g:typescript_host_keyword = 0
|
| 4072 |
<
|
|
|
|
| 4076 |
|
| 4077 |
*g:typst_embedded_languages*
|
| 4078 |
Typst files can embed syntax highlighting for other languages by setting the
|
| 4079 |
+
|g:typst_embedded_languages| variable. This variable is a list of language
|
| 4080 |
+
names whose syntax definitions will be included in Typst files. Example: >
|
| 4081 |
|
| 4082 |
let g:typst_embedded_languages = ['python', 'r']
|
| 4083 |
|
|
|
|
| 4170 |
|
| 4171 |
WDL *wdl.vim* *wdl-syntax*
|
| 4172 |
|
| 4173 |
+
The Workflow Description Language is a way to specify data processing
|
| 4174 |
+
workflows with a human-readable and writeable syntax. This is used a lot in
|
| 4175 |
bioinformatics. More info on the spec can be found here:
|
| 4176 |
https://github.com/openwdl/wdl
|
| 4177 |
|
|
|
|
| 4239 |
|
| 4240 |
*g:yaml_schema* *b:yaml_schema*
|
| 4241 |
A YAML schema is a combination of a set of tags and a mechanism for resolving
|
| 4242 |
+
non-specific tags. For user this means that YAML parser may, depending on
|
| 4243 |
plain scalar contents, treat plain scalar (which can actually be only string
|
| 4244 |
and nothing else) as a value of the other type: null, boolean, floating-point,
|
| 4245 |
+
integer. `g:yaml_schema` option determines according to which schema values
|
| 4246 |
+
will be highlighted specially. Supported schemas are
|
| 4247 |
|
| 4248 |
Schema Description ~
|
| 4249 |
failsafe No additional highlighting.
|
|
|
|
| 4693 |
When the "concealends" argument is given, the start and end matches of
|
| 4694 |
the region, but not the contents of the region, are marked as concealable.
|
| 4695 |
Whether or not they are actually concealed depends on the setting on the
|
| 4696 |
+
'conceallevel' option. The ends of a region can only be concealed separately
|
| 4697 |
in this way when they have their own highlighting via "matchgroup". The
|
| 4698 |
|synconcealed()| function can be used to retrieve information about conealed
|
| 4699 |
items.
|
|
|
|
| 4977 |
|
| 4978 |
:sy[ntax] conceal [on|off]
|
| 4979 |
This defines if the following ":syntax" commands will define keywords,
|
| 4980 |
+
matches or regions with the "conceal" flag set. After ":syn conceal
|
| 4981 |
on", all subsequent ":syn keyword", ":syn match" or ":syn region"
|
| 4982 |
defined will have the "conceal" flag set implicitly. ":syn conceal
|
| 4983 |
off" returns to the normal state where the "conceal" flag must be
|
|
|
|
| 5479 |
< In case g:colors_name has not been defined :colo will
|
| 5480 |
output "default". Its palette is defined in the file
|
| 5481 |
"$VIMRUNTIME/syntax/syncolor.vim" and is based on
|
| 5482 |
+
legacy versions of peachpuff and desert. When
|
| 5483 |
+
compiled without the |+eval| feature it will output
|
| 5484 |
+
"unknown".
|
| 5485 |
|
| 5486 |
:colo[rscheme] {name} Load color scheme {name}. This searches 'runtimepath'
|
| 5487 |
for the file "colors/{name}.vim". The first one that
|
|
|
|
| 5579 |
|
| 5580 |
:hi[ghlight] [default] {group-name} {key}={arg} ...
|
| 5581 |
Add a highlight group, or change the highlighting for
|
| 5582 |
+
an existing group. If a given color name is not
|
| 5583 |
recognized, each `colors/lists/default.vim` found on
|
| 5584 |
'runtimepath' will be loaded.
|
| 5585 |
See |highlight-args| for the {key}={arg} arguments.
|
|
|
|
| 5614 |
Last set from /home/mool/vim/vim7/runtime/syntax/syncolor.vim ~
|
| 5615 |
|
| 5616 |
When ":hi clear" is used then the script where this command is used will be
|
| 5617 |
+
mentioned for the default values. See |:verbose-cmd| for more information.
|
| 5618 |
|
| 5619 |
*highlight-args* *E416* *E417* *E423*
|
| 5620 |
There are three types of terminals for highlighting:
|
|
|
|
| 5815 |
"fg" and "bg" colors will not be adjusted.
|
| 5816 |
|
| 5817 |
ctermfont={font-nr} *highlight-ctermfont*
|
| 5818 |
+
This gives the alternative font number to use in the terminal. The
|
| 5819 |
available fonts depend on the terminal, and if the terminal is not set
|
| 5820 |
+
up for alternative fonts this simply won't do anything. The range of
|
| 5821 |
{font-nr} is 0-10 where 0 resets the font to the default font, 1-9
|
| 5822 |
selects one of the 9 alternate fonts, and 10 selects the Fraktur font.
|
| 5823 |
For more information see your terminal's handling of SGR parameters
|
|
|
|
| 5911 |
colorscheme alt
|
| 5912 |
<
|
| 5913 |
If you want to develop a color list that can be relied on by others,
|
| 5914 |
+
it is best to prefix your color names. By convention these color
|
| 5915 |
+
lists are placed in the colors/lists directory. You can see an
|
| 5916 |
+
example in '$VIMRUNTIME/colors/lists/csscolors.vim'. This list would
|
| 5917 |
+
be sourced by a color scheme using: >
|
| 5918 |
|
| 5919 |
:runtime colors/lists/csscolors.vim
|
| 5920 |
:highlight Comment guifg=css_turquoise
|
|
|
|
| 5940 |
*hl-CursorIM*
|
| 5941 |
CursorIM Like Cursor, but used when in IME mode. |CursorIM|
|
| 5942 |
*hl-CursorColumn*
|
| 5943 |
+
CursorColumn Screen column that the cursor is in when 'cursorcolumn' is
|
| 5944 |
+
set.
|
| 5945 |
*hl-CursorLine*
|
| 5946 |
CursorLine Screen line that the cursor is in when 'cursorline' is set.
|
| 5947 |
*hl-Directory*
|
|
|
|
| 6027 |
*hl-PmenuThumb*
|
| 6028 |
PmenuThumb Popup menu: Thumb of the scrollbar.
|
| 6029 |
*hl-PmenuMatch*
|
| 6030 |
+
PmenuMatch Popup menu: Matched text in normal item. Applied in
|
| 6031 |
combination with |hl-Pmenu|.
|
| 6032 |
*hl-PmenuMatchSel*
|
| 6033 |
+
PmenuMatchSel Popup menu: Matched text in selected item. Applied in
|
| 6034 |
combination with |hl-PmenuSel|.
|
| 6035 |
*hl-PmenuBorder*
|
| 6036 |
PmenuBorder Popup menu: Border characters.
|
|
|
|
| 6333 |
==============================================================================
|
| 6334 |
18. Window-local syntax *:ownsyntax*
|
| 6335 |
|
| 6336 |
+
Normally all windows on a buffer share the same syntax settings. It is
|
| 6337 |
possible, however, to set a particular window on a file to have its own
|
| 6338 |
+
private syntax setting. A possible example would be to edit LaTeX source
|
| 6339 |
with conventional highlighting in one window, while seeing the same source
|
| 6340 |
highlighted differently (so as to hide control sequences and indicate bold,
|
| 6341 |
+
italic etc regions) in another. The 'scrollbind' option is useful here.
|
| 6342 |
|
| 6343 |
To set the current window to have the syntax "foo", separately from all other
|
| 6344 |
windows on the buffer: >
|
|
|
|
| 6353 |
options.
|
| 6354 |
|
| 6355 |
Once a window has its own syntax, syntax commands executed from other windows
|
| 6356 |
+
on the same buffer (including :syntax clear) have no effect. Conversely,
|
| 6357 |
syntax commands executed from that window do not affect other windows on the
|
| 6358 |
same buffer.
|
| 6359 |
|
|
|
|
| 6538 |
current window. Use a wider display to see more of
|
| 6539 |
the output.
|
| 6540 |
|
| 6541 |
+
The list is sorted by total time. The columns are:
|
| 6542 |
TOTAL Total time in seconds spent on
|
| 6543 |
matching this pattern.
|
| 6544 |
COUNT Number of times the pattern was used.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*tabpage.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -145,7 +145,7 @@ something else.
|
|
| 145 |
:tabclose $ " close the last tab page
|
| 146 |
:tabclose # " close the last accessed tab page
|
| 147 |
|
| 148 |
-
When a tab page is closed the next tab page will become the current one.
|
| 149 |
behaviour can be customized using the 'tabclose' option.
|
| 150 |
|
| 151 |
*:tabo* *:tabonly*
|
|
@@ -277,7 +277,7 @@ REORDERING TAB PAGES:
|
|
| 277 |
|
| 278 |
|
| 279 |
Note that although it is possible to move a tab page behind the N-th one by
|
| 280 |
-
using :Ntabmove.
|
| 281 |
clarification what +N means in this context see |[range]|.
|
| 282 |
|
| 283 |
|
|
|
|
| 1 |
+
*tabpage.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 145 |
:tabclose $ " close the last tab page
|
| 146 |
:tabclose # " close the last accessed tab page
|
| 147 |
|
| 148 |
+
When a tab page is closed the next tab page will become the current one. This
|
| 149 |
behaviour can be customized using the 'tabclose' option.
|
| 150 |
|
| 151 |
*:tabo* *:tabonly*
|
|
|
|
| 277 |
|
| 278 |
|
| 279 |
Note that although it is possible to move a tab page behind the N-th one by
|
| 280 |
+
using :Ntabmove. And move it by N places by using :+Ntabmove. For
|
| 281 |
clarification what +N means in this context see |[range]|.
|
| 282 |
|
| 283 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*tagsrch.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -44,7 +44,7 @@ below.
|
|
| 44 |
{name} can be a regexp pattern, see |tag-regexp|.
|
| 45 |
When there are several matching tags for {name}, jump
|
| 46 |
to the [count] one. When [count] is omitted the
|
| 47 |
-
first one is jumped to.
|
| 48 |
jumping to other matching tags.
|
| 49 |
|
| 50 |
g<LeftMouse> *g<LeftMouse>*
|
|
@@ -54,7 +54,7 @@ CTRL-] Jump to the definition of the keyword under the
|
|
| 54 |
keyword under or after cursor.
|
| 55 |
When there are several matching tags for {name}, jump
|
| 56 |
to the [count] one. When no [count] is given the
|
| 57 |
-
first one is jumped to.
|
| 58 |
jumping to other matching tags.
|
| 59 |
|
| 60 |
*v_CTRL-]*
|
|
@@ -103,7 +103,7 @@ The ignore-case matches are found when:
|
|
| 103 |
|
| 104 |
Note that using ignore-case tag searching disables binary searching in the
|
| 105 |
tags file, which causes a slowdown. This can be avoided by fold-case sorting
|
| 106 |
-
the tag file.
|
| 107 |
|
| 108 |
==============================================================================
|
| 109 |
2. Tag stack *tag-stack* *tagstack* *E425*
|
|
@@ -182,7 +182,7 @@ commands explained above the tag stack will look like this:
|
|
| 182 |
1 1 main 1 harddisk2:text/vim/test
|
| 183 |
2 1 FuncB 59 harddisk2:text/vim/src/main.c
|
| 184 |
|
| 185 |
-
The |gettagstack()| function returns the tag stack of a specified window.
|
| 186 |
|settagstack()| function modifies the tag stack of a window.
|
| 187 |
|
| 188 |
*tagstack-examples*
|
|
@@ -308,7 +308,7 @@ g CTRL-] Like CTRL-], but use ":tjump" instead of ":tag".
|
|
| 308 |
not given, the last tag name from the tag stack is
|
| 309 |
used. The search pattern to locate the tag line is
|
| 310 |
prefixed with "\V" to escape all the special
|
| 311 |
-
characters (very nomagic).
|
| 312 |
the matching tags is independent of the tag stack.
|
| 313 |
See |tag-!| for [!].
|
| 314 |
|
|
@@ -441,7 +441,7 @@ current file changed ! option option action ~
|
|
| 441 |
This works because the tag is put on the stack anyway. If you want to lose
|
| 442 |
the changes you can use the ":tag!" command.
|
| 443 |
- If the tag is in another file and the window includes 'winfixbuf', the
|
| 444 |
-
command will fail.
|
| 445 |
|
| 446 |
*tag-security*
|
| 447 |
Note that Vim forbids some commands, for security reasons. This works like
|
|
@@ -455,8 +455,8 @@ would otherwise go unnoticed. Example: >
|
|
| 455 |
:$d|/tag-function-name/
|
| 456 |
|
| 457 |
In Vi the ":tag" command sets the last search pattern when the tag is searched
|
| 458 |
-
for. In Vim this is not done, the previous search pattern is still
|
| 459 |
-
unless the 't' flag is present in 'cpoptions'.
|
| 460 |
|
| 461 |
*emacs-tags* *emacs_tags* *E430*
|
| 462 |
Emacs style tag files are only supported if Vim was compiled with the
|
|
@@ -465,7 +465,7 @@ files here, it is only supported for backwards compatibility :-).
|
|
| 465 |
|
| 466 |
Lines in Emacs tags files can be very long. Vim only deals with lines of up
|
| 467 |
to about 510 bytes. To see whether lines are ignored set 'verbose' to 5 or
|
| 468 |
-
higher.
|
| 469 |
|
| 470 |
*tags-option*
|
| 471 |
The 'tags' option is a list of file names. Each of these files is searched
|
|
@@ -535,7 +535,7 @@ Some programs that generate tags files:
|
|
| 535 |
ctags As found on most Unix systems. Only supports C. Only
|
| 536 |
does the basic work.
|
| 537 |
universal ctags A maintained version of ctags based on exuberant
|
| 538 |
-
ctags.
|
| 539 |
*Exuberant_ctags*
|
| 540 |
exuberant ctags This is a very good one. It works for C, C++, Java,
|
| 541 |
Fortran, Eiffel and others. It can generate tags for
|
|
@@ -586,7 +586,7 @@ ctags).
|
|
| 586 |
{term} ;" The two characters semicolon and double quote. This is
|
| 587 |
interpreted by Vi as the start of a comment, which makes the
|
| 588 |
following be ignored. This is for backwards compatibility
|
| 589 |
-
with Vi, it ignores the following fields.
|
| 590 |
APP file /^static int APP;$/;" v
|
| 591 |
< When {tagaddress} is not a line number or search pattern, then
|
| 592 |
{term} must be |;". Here the bar ends the command (excluding
|
|
@@ -928,7 +928,8 @@ The function should return a List of Dict entries. Each Dict must at least
|
|
| 928 |
include the following entries and each value must be a string:
|
| 929 |
name Name of the tag.
|
| 930 |
filename Name of the file where the tag is defined. It is
|
| 931 |
-
either relative to the current directory or a full
|
|
|
|
| 932 |
cmd Ex command used to locate the tag in the file. This
|
| 933 |
can be either an Ex search pattern or a line number.
|
| 934 |
Note that the format is similar to that of |taglist()|, which makes it possible
|
|
|
|
| 1 |
+
*tagsrch.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 44 |
{name} can be a regexp pattern, see |tag-regexp|.
|
| 45 |
When there are several matching tags for {name}, jump
|
| 46 |
to the [count] one. When [count] is omitted the
|
| 47 |
+
first one is jumped to. See |tag-matchlist| for
|
| 48 |
jumping to other matching tags.
|
| 49 |
|
| 50 |
g<LeftMouse> *g<LeftMouse>*
|
|
|
|
| 54 |
keyword under or after cursor.
|
| 55 |
When there are several matching tags for {name}, jump
|
| 56 |
to the [count] one. When no [count] is given the
|
| 57 |
+
first one is jumped to. See |tag-matchlist| for
|
| 58 |
jumping to other matching tags.
|
| 59 |
|
| 60 |
*v_CTRL-]*
|
|
|
|
| 103 |
|
| 104 |
Note that using ignore-case tag searching disables binary searching in the
|
| 105 |
tags file, which causes a slowdown. This can be avoided by fold-case sorting
|
| 106 |
+
the tag file. See the 'tagbsearch' option for an explanation.
|
| 107 |
|
| 108 |
==============================================================================
|
| 109 |
2. Tag stack *tag-stack* *tagstack* *E425*
|
|
|
|
| 182 |
1 1 main 1 harddisk2:text/vim/test
|
| 183 |
2 1 FuncB 59 harddisk2:text/vim/src/main.c
|
| 184 |
|
| 185 |
+
The |gettagstack()| function returns the tag stack of a specified window. The
|
| 186 |
|settagstack()| function modifies the tag stack of a window.
|
| 187 |
|
| 188 |
*tagstack-examples*
|
|
|
|
| 308 |
not given, the last tag name from the tag stack is
|
| 309 |
used. The search pattern to locate the tag line is
|
| 310 |
prefixed with "\V" to escape all the special
|
| 311 |
+
characters (very nomagic). The location list showing
|
| 312 |
the matching tags is independent of the tag stack.
|
| 313 |
See |tag-!| for [!].
|
| 314 |
|
|
|
|
| 441 |
This works because the tag is put on the stack anyway. If you want to lose
|
| 442 |
the changes you can use the ":tag!" command.
|
| 443 |
- If the tag is in another file and the window includes 'winfixbuf', the
|
| 444 |
+
command will fail. If the tag is in the same file then it may succeed.
|
| 445 |
|
| 446 |
*tag-security*
|
| 447 |
Note that Vim forbids some commands, for security reasons. This works like
|
|
|
|
| 455 |
:$d|/tag-function-name/
|
| 456 |
|
| 457 |
In Vi the ":tag" command sets the last search pattern when the tag is searched
|
| 458 |
+
for. In Vim this is not done, the previous search pattern is still
|
| 459 |
+
remembered, unless the 't' flag is present in 'cpoptions'.
|
| 460 |
|
| 461 |
*emacs-tags* *emacs_tags* *E430*
|
| 462 |
Emacs style tag files are only supported if Vim was compiled with the
|
|
|
|
| 465 |
|
| 466 |
Lines in Emacs tags files can be very long. Vim only deals with lines of up
|
| 467 |
to about 510 bytes. To see whether lines are ignored set 'verbose' to 5 or
|
| 468 |
+
higher. Non-Emacs tags file lines can be any length.
|
| 469 |
|
| 470 |
*tags-option*
|
| 471 |
The 'tags' option is a list of file names. Each of these files is searched
|
|
|
|
| 535 |
ctags As found on most Unix systems. Only supports C. Only
|
| 536 |
does the basic work.
|
| 537 |
universal ctags A maintained version of ctags based on exuberant
|
| 538 |
+
ctags. See https://ctags.io.
|
| 539 |
*Exuberant_ctags*
|
| 540 |
exuberant ctags This is a very good one. It works for C, C++, Java,
|
| 541 |
Fortran, Eiffel and others. It can generate tags for
|
|
|
|
| 586 |
{term} ;" The two characters semicolon and double quote. This is
|
| 587 |
interpreted by Vi as the start of a comment, which makes the
|
| 588 |
following be ignored. This is for backwards compatibility
|
| 589 |
+
with Vi, it ignores the following fields. Example: >
|
| 590 |
APP file /^static int APP;$/;" v
|
| 591 |
< When {tagaddress} is not a line number or search pattern, then
|
| 592 |
{term} must be |;". Here the bar ends the command (excluding
|
|
|
|
| 928 |
include the following entries and each value must be a string:
|
| 929 |
name Name of the tag.
|
| 930 |
filename Name of the file where the tag is defined. It is
|
| 931 |
+
either relative to the current directory or a full
|
| 932 |
+
path.
|
| 933 |
cmd Ex command used to locate the tag in the file. This
|
| 934 |
can be either an Ex search pattern or a line number.
|
| 935 |
Note that the format is similar to that of |taglist()|, which makes it possible
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*term.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -676,7 +676,7 @@ anymore.
|
|
| 676 |
|
| 677 |
*xterm-true-color*
|
| 678 |
Vim supports using true colors in the terminal (taken from |highlight-guifg|
|
| 679 |
-
and |highlight-guibg|), given that the terminal supports this.
|
| 680 |
work the 'termguicolors' option needs to be set.
|
| 681 |
See https://github.com/termstandard/colors for a list of terminals that
|
| 682 |
support true colors.
|
|
@@ -746,8 +746,8 @@ Note: When 't_EI' is not set then 't_SI' and 't_SR' will not be sent. And
|
|
| 746 |
when 't_SI' or 't_SR' is not set then 't_EI' is sent only once.
|
| 747 |
|
| 748 |
This can be used to change the shape or color of the cursor in Insert or
|
| 749 |
-
Replace mode.
|
| 750 |
-
them yourself.
|
| 751 |
Example for an xterm, this changes the color of the cursor: >
|
| 752 |
if &term =~ "xterm"
|
| 753 |
let &t_SI = "\<Esc>]12;purple\x7"
|
|
@@ -1111,7 +1111,8 @@ which characters are included in a word. A double click on a character
|
|
| 1111 |
that has a match selects until that match (like using "v%"). If the match is
|
| 1112 |
an #if/#else/#endif block, the selection becomes linewise.
|
| 1113 |
For MS-Windows and xterm the time for double clicking can be set with the
|
| 1114 |
-
'mousetime' option. For the other systems this time is defined outside of
|
|
|
|
| 1115 |
An example, for using a double click to jump to the tag under the cursor: >
|
| 1116 |
:map <2-LeftMouse> :exe "tag " .. expand("<cword>")<CR>
|
| 1117 |
|
|
@@ -1140,10 +1141,10 @@ modifiers.
|
|
| 1140 |
When working with several windows, the size of the windows can be changed by
|
| 1141 |
dragging the status line with the mouse. Point the mouse at a status line,
|
| 1142 |
press the left button, move the mouse to the new position of the status line,
|
| 1143 |
-
release the button. Just clicking the mouse in a status line makes that
|
| 1144 |
-
the current window, without moving the cursor. If by selecting a
|
| 1145 |
-
will change position or size, the dragging of the status line will
|
| 1146 |
-
confusing, but it will work (just try it).
|
| 1147 |
|
| 1148 |
*<MiddleRelease>* *<MiddleDrag>*
|
| 1149 |
Mouse clicks can be mapped. The codes for mouse clicks are:
|
|
|
|
| 1 |
+
*term.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 676 |
|
| 677 |
*xterm-true-color*
|
| 678 |
Vim supports using true colors in the terminal (taken from |highlight-guifg|
|
| 679 |
+
and |highlight-guibg|), given that the terminal supports this. To make this
|
| 680 |
work the 'termguicolors' option needs to be set.
|
| 681 |
See https://github.com/termstandard/colors for a list of terminals that
|
| 682 |
support true colors.
|
|
|
|
| 746 |
when 't_SI' or 't_SR' is not set then 't_EI' is sent only once.
|
| 747 |
|
| 748 |
This can be used to change the shape or color of the cursor in Insert or
|
| 749 |
+
Replace mode. These are not standard termcap/terminfo entries, you need to
|
| 750 |
+
set them yourself.
|
| 751 |
Example for an xterm, this changes the color of the cursor: >
|
| 752 |
if &term =~ "xterm"
|
| 753 |
let &t_SI = "\<Esc>]12;purple\x7"
|
|
|
|
| 1111 |
that has a match selects until that match (like using "v%"). If the match is
|
| 1112 |
an #if/#else/#endif block, the selection becomes linewise.
|
| 1113 |
For MS-Windows and xterm the time for double clicking can be set with the
|
| 1114 |
+
'mousetime' option. For the other systems this time is defined outside of
|
| 1115 |
+
Vim.
|
| 1116 |
An example, for using a double click to jump to the tag under the cursor: >
|
| 1117 |
:map <2-LeftMouse> :exe "tag " .. expand("<cword>")<CR>
|
| 1118 |
|
|
|
|
| 1141 |
When working with several windows, the size of the windows can be changed by
|
| 1142 |
dragging the status line with the mouse. Point the mouse at a status line,
|
| 1143 |
press the left button, move the mouse to the new position of the status line,
|
| 1144 |
+
release the button. Just clicking the mouse in a status line makes that
|
| 1145 |
+
window the current window, without moving the cursor. If by selecting a
|
| 1146 |
+
window it will change position or size, the dragging of the status line will
|
| 1147 |
+
look confusing, but it will work (just try it).
|
| 1148 |
|
| 1149 |
*<MiddleRelease>* *<MiddleDrag>*
|
| 1150 |
Mouse clicks can be mapped. The codes for mouse clicks are:
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*terminal.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -54,7 +54,7 @@ The terminal feature requires the |+job| and |+channel| features.
|
|
| 54 |
1. Basic use *terminal-use*
|
| 55 |
|
| 56 |
This feature is for running a terminal emulator in a Vim window. A job can be
|
| 57 |
-
started connected to the terminal emulator.
|
| 58 |
:term bash
|
| 59 |
|
| 60 |
Or to run build command: >
|
|
@@ -71,7 +71,8 @@ the job. This uses a pty when possible. You can click outside of the
|
|
| 71 |
terminal window to move keyboard focus elsewhere.
|
| 72 |
|
| 73 |
*t_CTRL-W_CTRL-W* *t_CTRL-W_:*
|
| 74 |
-
CTRL-W can be used to navigate between windows and other CTRL-W commands,
|
|
|
|
| 75 |
CTRL-W CTRL-W move focus to the next window
|
| 76 |
CTRL-W : enter an Ex command
|
| 77 |
See |CTRL-W| for more commands.
|
|
@@ -271,12 +272,12 @@ Command syntax ~
|
|
| 271 |
the terminal window) the command line
|
| 272 |
height will be reduced as needed.
|
| 273 |
++cols={width} Use {width} for the terminal window
|
| 274 |
-
width.
|
| 275 |
Vim width (no window left or right of
|
| 276 |
the terminal window) this value is
|
| 277 |
ignored.
|
| 278 |
++eof={text} When using [range]: text to send after
|
| 279 |
-
the last line was written.
|
| 280 |
contain white space. A CR is
|
| 281 |
appended. For MS-Windows the default
|
| 282 |
is to send CTRL-D.
|
|
@@ -322,13 +323,13 @@ fails, use ! to force, as usual.
|
|
| 322 |
*terminal-close*
|
| 323 |
When the terminal job finishes and no [command] was given (e.g. the 'shell'
|
| 324 |
command was executed), the terminal window will be closed by default (unless
|
| 325 |
-
the buffer in next window receiving the space has the 'nobuflisted' option
|
| 326 |
-
in which case the terminal window would not be closed automatically, but
|
| 327 |
-
empty buffer would be opened in that window).
|
| 328 |
|
| 329 |
When the terminal window is closed, e.g. when the shell exits and "++close"
|
| 330 |
argument was used, and this is the last normal Vim window, then Vim will exit.
|
| 331 |
-
This is like using |:quit| in a normal window.
|
| 332 |
not counted.
|
| 333 |
|
| 334 |
To have a background job run without a window, and open the window when it's
|
|
@@ -384,7 +385,7 @@ Use CTRL-W N (or 'termwinkey' N) to switch to Terminal-Normal mode. Now the
|
|
| 384 |
contents of the terminal window is under control of Vim, the job output is
|
| 385 |
suspended. CTRL-\ CTRL-N does the same.
|
| 386 |
|
| 387 |
-
Terminal-Job mode is where |:tmap| mappings are applied.
|
| 388 |
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
|
| 389 |
|
| 390 |
It is not possible to enter Insert mode from Terminal-Job mode.
|
|
@@ -394,7 +395,7 @@ In Terminal-Normal mode you can move the cursor around with the usual Vim
|
|
| 394 |
commands, Visually mark text, yank text, etc. But you cannot change the
|
| 395 |
contents of the buffer. The commands that would start insert mode, such as
|
| 396 |
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
|
| 397 |
-
the contents of the terminal.
|
| 398 |
|
| 399 |
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
|
| 400 |
the job ends while in Terminal-Normal mode this changes to
|
|
@@ -402,7 +403,7 @@ the job ends while in Terminal-Normal mode this changes to
|
|
| 402 |
|
| 403 |
When the job outputs lines in the terminal, such that the contents scrolls off
|
| 404 |
the top, those lines are remembered and can be seen in Terminal-Normal mode.
|
| 405 |
-
The number of lines is limited by the 'termwinscroll' option.
|
| 406 |
this limit, the first 10% of the scrolled lines are deleted and are lost.
|
| 407 |
|
| 408 |
|
|
@@ -486,10 +487,10 @@ version, rename to winpty32.dll and winpty64.dll to match the way Vim was
|
|
| 486 |
build.
|
| 487 |
*ConPTY* *E982*
|
| 488 |
On more recent versions of MS-Windows 10 (beginning with the "October 2018
|
| 489 |
-
Update"), winpty is no longer required.
|
| 490 |
Windows' built-in support for hosting terminal applications, "ConPTY". When
|
| 491 |
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
|
| 492 |
-
characters.
|
| 493 |
ConPTY problems have been fixed "winpty" will be preferred.
|
| 494 |
|
| 495 |
Environment variables are used to pass information to the running job:
|
|
@@ -540,7 +541,7 @@ term_dumpdiff({filename}, {filename} [, {options}])
|
|
| 540 |
"norestore" do not add the terminal window to a
|
| 541 |
session file
|
| 542 |
|
| 543 |
-
Each character in the middle part indicates a difference.
|
| 544 |
there are multiple differences only the first in this list is
|
| 545 |
used:
|
| 546 |
X different character
|
|
@@ -641,8 +642,8 @@ term_getattr({attr}, {what}) *term_getattr()*
|
|
| 641 |
|
| 642 |
|
| 643 |
term_getcursor({buf}) *term_getcursor()*
|
| 644 |
-
Get the cursor position of terminal {buf}.
|
| 645 |
-
two numbers and a dictionary: [row, col, dict].
|
| 646 |
|
| 647 |
"row" and "col" are one based, the first screen cell is row
|
| 648 |
1, column 1. This is the cursor position of the terminal
|
|
@@ -657,7 +658,7 @@ term_getcursor({buf}) *term_getcursor()*
|
|
| 657 |
for a vertical bar.
|
| 658 |
"color" color of the cursor, e.g. "green"
|
| 659 |
|
| 660 |
-
{buf} must be the buffer number of a terminal window.
|
| 661 |
buffer does not exist or is not a terminal window, an empty
|
| 662 |
list is returned.
|
| 663 |
|
|
@@ -670,7 +671,7 @@ term_getcursor({buf}) *term_getcursor()*
|
|
| 670 |
term_getjob({buf}) *term_getjob()*
|
| 671 |
Get the Job associated with terminal window {buf}.
|
| 672 |
{buf} is used as with |term_getsize()|.
|
| 673 |
-
Returns |v:null| when there is no job.
|
| 674 |
|null_job| when there is no job.
|
| 675 |
|
| 676 |
Can also be used as a |method|: >
|
|
@@ -713,7 +714,7 @@ term_getscrolled({buf}) *term_getscrolled()*
|
|
| 713 |
|
| 714 |
|
| 715 |
term_getsize({buf}) *term_getsize()*
|
| 716 |
-
Get the size of terminal {buf}.
|
| 717 |
numbers: [rows, cols]. This is the size of the terminal, not
|
| 718 |
the window containing the terminal.
|
| 719 |
|
|
@@ -728,14 +729,14 @@ term_getsize({buf}) *term_getsize()*
|
|
| 728 |
|
| 729 |
|
| 730 |
term_getstatus({buf}) *term_getstatus()*
|
| 731 |
-
Get the status of terminal {buf}.
|
| 732 |
a comma-separated list of these items:
|
| 733 |
running job is running
|
| 734 |
finished job has finished
|
| 735 |
normal in Terminal-Normal mode
|
| 736 |
One of "running" or "finished" is always present.
|
| 737 |
|
| 738 |
-
{buf} must be the buffer number of a terminal window.
|
| 739 |
buffer does not exist or is not a terminal window, an empty
|
| 740 |
string is returned.
|
| 741 |
|
|
@@ -746,10 +747,10 @@ term_getstatus({buf}) *term_getstatus()*
|
|
| 746 |
|
| 747 |
|
| 748 |
term_gettitle({buf}) *term_gettitle()*
|
| 749 |
-
Get the title of terminal {buf}.
|
| 750 |
job in the terminal has set.
|
| 751 |
|
| 752 |
-
{buf} must be the buffer number of a terminal window.
|
| 753 |
buffer does not exist or is not a terminal window, an empty
|
| 754 |
string is returned.
|
| 755 |
|
|
@@ -764,8 +765,8 @@ term_gettty({buf} [, {input}]) *term_gettty()*
|
|
| 764 |
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
| 765 |
|
| 766 |
When {input} is omitted or 0, return the name for writing
|
| 767 |
-
(stdout).
|
| 768 |
-
(stdin).
|
| 769 |
|
| 770 |
Can also be used as a |method|: >
|
| 771 |
GetBufnr()->term_gettty()
|
|
@@ -808,7 +809,7 @@ term_sendkeys({buf}, {keys}) *term_sendkeys()*
|
|
| 808 |
Send keystrokes {keys} to terminal {buf}.
|
| 809 |
{buf} is used as with |term_getsize()|.
|
| 810 |
|
| 811 |
-
{keys} are translated as key sequences.
|
| 812 |
means the character CTRL-X.
|
| 813 |
|
| 814 |
Can also be used as a |method|: >
|
|
@@ -904,7 +905,7 @@ term_setrestore({buf}, {command}) *term_setrestore()*
|
|
| 904 |
|
| 905 |
|
| 906 |
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
| 907 |
-
Set the size of terminal {buf}.
|
| 908 |
containing the terminal will also be adjusted, if possible.
|
| 909 |
If {rows} or {cols} is zero or negative, that dimension is not
|
| 910 |
changed.
|
|
@@ -922,7 +923,7 @@ term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
|
| 922 |
term_start({cmd} [, {options}]) *term_start()*
|
| 923 |
Open a terminal window and run {cmd} in it.
|
| 924 |
|
| 925 |
-
{cmd} can be a string or a List, like with |job_start()|.
|
| 926 |
string "NONE" can be used to open a terminal window without
|
| 927 |
starting a job, the pty of the terminal can be used by a
|
| 928 |
command like gdb.
|
|
@@ -969,17 +970,17 @@ term_start({cmd} [, {options}]) *term_start()*
|
|
| 969 |
"open": open window if needed
|
| 970 |
Note that "open" can be interruptive.
|
| 971 |
See |term++close| and |term++open|.
|
| 972 |
-
"term_opencmd" command to use for opening the window
|
| 973 |
-
"open" is used for "term_finish";
|
| 974 |
-
have "%d" where the buffer number
|
| 975 |
-
e.g. "10split|buffer %d"; when not
|
| 976 |
specified "botright sbuf %d" is used
|
| 977 |
"term_highlight" highlight group to use instead of
|
| 978 |
"Terminal"
|
| 979 |
"eof_chars" Text to send after all buffer lines were
|
| 980 |
written to the terminal. When not set
|
| 981 |
-
CTRL-D is used on MS-Windows.
|
| 982 |
-
use CTRL-Z or "exit()".
|
| 983 |
"exit". A CR is always added.
|
| 984 |
"ansi_colors" A list of 16 color names or hex codes
|
| 985 |
defining the ANSI palette used in GUI
|
|
@@ -1014,7 +1015,7 @@ term_wait({buf} [, {time}]) *term_wait()*
|
|
| 1014 |
There are several ways to communicate with the job running in a terminal:
|
| 1015 |
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
|
| 1016 |
- Use the JSON API to send encoded commands from the job to Vim.
|
| 1017 |
-
- Use the |client-server| mechanism.
|
| 1018 |
and on MS-Windows.
|
| 1019 |
|
| 1020 |
|
|
@@ -1180,7 +1181,7 @@ Writing a screen dump test for Vim ~
|
|
| 1180 |
*terminal-dumptest*
|
| 1181 |
For an example see the Test_syntax_c() function in
|
| 1182 |
src/testdir/test_syntax.vim. The main parts are:
|
| 1183 |
-
- Write a file you want to test with.
|
| 1184 |
highlighting. You can also start Vim with an empty buffer.
|
| 1185 |
- Run Vim in a terminal with a specific size. The default is 20 lines of 75
|
| 1186 |
characters. This makes sure the dump is always this size. The function
|
|
@@ -1258,7 +1259,7 @@ kind of difference:
|
|
| 1258 |
+ character missing in first
|
| 1259 |
- character missing in second
|
| 1260 |
|
| 1261 |
-
Alternatively, press "s" to swap the first and second dump.
|
| 1262 |
times so that you can spot the difference in the context of the text.
|
| 1263 |
|
| 1264 |
==============================================================================
|
|
@@ -1313,7 +1314,7 @@ Only one debugger can be active at a time.
|
|
| 1313 |
*termdebug-timeout*
|
| 1314 |
Depending on how gdb is launched, termdebug startup time may vary.
|
| 1315 |
To avoid termdebug to get stuck if the startup process of gdb takes too long,
|
| 1316 |
-
a configurable timeout is included.
|
| 1317 |
multiple of 10ms: >
|
| 1318 |
let g:termdebug_config['timeout'] = 500 # 500 * 10ms = 5 seconds.
|
| 1319 |
|
|
@@ -1360,7 +1361,7 @@ You can use CTRL-W CTRL-W or the mouse to move focus between windows.
|
|
| 1360 |
Put focus on the gdb window and type: >
|
| 1361 |
break ex_help
|
| 1362 |
run
|
| 1363 |
-
Vim will start running in the program window.
|
| 1364 |
:help gui
|
| 1365 |
Gdb will run into the ex_help breakpoint. The source window now shows the
|
| 1366 |
ex_cmds.c file. A red "1 " marker will appear in the signcolumn where the
|
|
@@ -1388,7 +1389,7 @@ executed.
|
|
| 1388 |
|
| 1389 |
You can type more advanced commands in the gdb window. For example, type: >
|
| 1390 |
watch curbuf
|
| 1391 |
-
Now click "Cont" in the toolbar (or type "cont" in the gdb window).
|
| 1392 |
will now continue until the value of "curbuf" changes, which is in do_ecmd().
|
| 1393 |
To remove this watchpoint again type in the gdb window: >
|
| 1394 |
delete 3
|
|
@@ -1500,7 +1501,7 @@ Other commands ~
|
|
| 1500 |
*:Asm* jump to the window with the disassembly, create it if there
|
| 1501 |
isn't one
|
| 1502 |
*:Var* jump to the window with the local and argument variables,
|
| 1503 |
-
create it if there isn't one.
|
| 1504 |
program is stopped
|
| 1505 |
|
| 1506 |
Events ~
|
|
@@ -1809,8 +1810,8 @@ However, the latter form will be deprecated in future releases.
|
|
| 1809 |
Change default signs ~
|
| 1810 |
*termdebug_signs*
|
| 1811 |
Termdebug uses the hex number of the breakpoint ID in the signcolumn to
|
| 1812 |
-
represent breakpoints.
|
| 1813 |
-
as "F+", due to we really only have two screen cells for the sign.
|
| 1814 |
You may also use decimal breakpoint signs instead, in which case IDs greater
|
| 1815 |
than 99 will be displayed as "9+".
|
| 1816 |
|
|
@@ -1857,7 +1858,7 @@ Set the wide value to 1 to use a vertical split without ever changing
|
|
| 1857 |
|
| 1858 |
Evaluate in Popup Window at Cursor ~
|
| 1859 |
*termdebug_evaluate_in_popup*
|
| 1860 |
-
By default |:Evaluate| will simply echo its output.
|
| 1861 |
might become difficult to read or even truncated.
|
| 1862 |
Alternatively, the evaluation result may be output into a popup window at the
|
| 1863 |
current cursor position: >
|
|
|
|
| 1 |
+
*terminal.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 54 |
1. Basic use *terminal-use*
|
| 55 |
|
| 56 |
This feature is for running a terminal emulator in a Vim window. A job can be
|
| 57 |
+
started connected to the terminal emulator. For example, to run a shell: >
|
| 58 |
:term bash
|
| 59 |
|
| 60 |
Or to run build command: >
|
|
|
|
| 71 |
terminal window to move keyboard focus elsewhere.
|
| 72 |
|
| 73 |
*t_CTRL-W_CTRL-W* *t_CTRL-W_:*
|
| 74 |
+
CTRL-W can be used to navigate between windows and other CTRL-W commands,
|
| 75 |
+
e.g.:
|
| 76 |
CTRL-W CTRL-W move focus to the next window
|
| 77 |
CTRL-W : enter an Ex command
|
| 78 |
See |CTRL-W| for more commands.
|
|
|
|
| 272 |
the terminal window) the command line
|
| 273 |
height will be reduced as needed.
|
| 274 |
++cols={width} Use {width} for the terminal window
|
| 275 |
+
width. If the terminal uses the full
|
| 276 |
Vim width (no window left or right of
|
| 277 |
the terminal window) this value is
|
| 278 |
ignored.
|
| 279 |
++eof={text} When using [range]: text to send after
|
| 280 |
+
the last line was written. Cannot
|
| 281 |
contain white space. A CR is
|
| 282 |
appended. For MS-Windows the default
|
| 283 |
is to send CTRL-D.
|
|
|
|
| 323 |
*terminal-close*
|
| 324 |
When the terminal job finishes and no [command] was given (e.g. the 'shell'
|
| 325 |
command was executed), the terminal window will be closed by default (unless
|
| 326 |
+
the buffer in next window receiving the space has the 'nobuflisted' option
|
| 327 |
+
set, in which case the terminal window would not be closed automatically, but
|
| 328 |
+
a new empty buffer would be opened in that window).
|
| 329 |
|
| 330 |
When the terminal window is closed, e.g. when the shell exits and "++close"
|
| 331 |
argument was used, and this is the last normal Vim window, then Vim will exit.
|
| 332 |
+
This is like using |:quit| in a normal window. Help and preview windows are
|
| 333 |
not counted.
|
| 334 |
|
| 335 |
To have a background job run without a window, and open the window when it's
|
|
|
|
| 385 |
contents of the terminal window is under control of Vim, the job output is
|
| 386 |
suspended. CTRL-\ CTRL-N does the same.
|
| 387 |
|
| 388 |
+
Terminal-Job mode is where |:tmap| mappings are applied. Keys sent by
|
| 389 |
|term_sendkeys()| are not subject to tmap, but keys from |feedkeys()| are.
|
| 390 |
|
| 391 |
It is not possible to enter Insert mode from Terminal-Job mode.
|
|
|
|
| 395 |
commands, Visually mark text, yank text, etc. But you cannot change the
|
| 396 |
contents of the buffer. The commands that would start insert mode, such as
|
| 397 |
'i' and 'a', return to Terminal-Job mode. The window will be updated to show
|
| 398 |
+
the contents of the terminal. |:startinsert| is ineffective.
|
| 399 |
|
| 400 |
In Terminal-Normal mode the statusline and window title show "(Terminal)". If
|
| 401 |
the job ends while in Terminal-Normal mode this changes to
|
|
|
|
| 403 |
|
| 404 |
When the job outputs lines in the terminal, such that the contents scrolls off
|
| 405 |
the top, those lines are remembered and can be seen in Terminal-Normal mode.
|
| 406 |
+
The number of lines is limited by the 'termwinscroll' option. When going over
|
| 407 |
this limit, the first 10% of the scrolled lines are deleted and are lost.
|
| 408 |
|
| 409 |
|
|
|
|
| 487 |
build.
|
| 488 |
*ConPTY* *E982*
|
| 489 |
On more recent versions of MS-Windows 10 (beginning with the "October 2018
|
| 490 |
+
Update"), winpty is no longer required. On those versions, |:terminal| will use
|
| 491 |
Windows' built-in support for hosting terminal applications, "ConPTY". When
|
| 492 |
ConPTY is in use, there may be rendering artifacts regarding ambiguous-width
|
| 493 |
+
characters. If you encounter any such issues, install "winpty". Until the
|
| 494 |
ConPTY problems have been fixed "winpty" will be preferred.
|
| 495 |
|
| 496 |
Environment variables are used to pass information to the running job:
|
|
|
|
| 541 |
"norestore" do not add the terminal window to a
|
| 542 |
session file
|
| 543 |
|
| 544 |
+
Each character in the middle part indicates a difference. If
|
| 545 |
there are multiple differences only the first in this list is
|
| 546 |
used:
|
| 547 |
X different character
|
|
|
|
| 642 |
|
| 643 |
|
| 644 |
term_getcursor({buf}) *term_getcursor()*
|
| 645 |
+
Get the cursor position of terminal {buf}. Returns a list
|
| 646 |
+
with two numbers and a dictionary: [row, col, dict].
|
| 647 |
|
| 648 |
"row" and "col" are one based, the first screen cell is row
|
| 649 |
1, column 1. This is the cursor position of the terminal
|
|
|
|
| 658 |
for a vertical bar.
|
| 659 |
"color" color of the cursor, e.g. "green"
|
| 660 |
|
| 661 |
+
{buf} must be the buffer number of a terminal window. If the
|
| 662 |
buffer does not exist or is not a terminal window, an empty
|
| 663 |
list is returned.
|
| 664 |
|
|
|
|
| 671 |
term_getjob({buf}) *term_getjob()*
|
| 672 |
Get the Job associated with terminal window {buf}.
|
| 673 |
{buf} is used as with |term_getsize()|.
|
| 674 |
+
Returns |v:null| when there is no job. In Vim9 script, return
|
| 675 |
|null_job| when there is no job.
|
| 676 |
|
| 677 |
Can also be used as a |method|: >
|
|
|
|
| 714 |
|
| 715 |
|
| 716 |
term_getsize({buf}) *term_getsize()*
|
| 717 |
+
Get the size of terminal {buf}. Returns a list with two
|
| 718 |
numbers: [rows, cols]. This is the size of the terminal, not
|
| 719 |
the window containing the terminal.
|
| 720 |
|
|
|
|
| 729 |
|
| 730 |
|
| 731 |
term_getstatus({buf}) *term_getstatus()*
|
| 732 |
+
Get the status of terminal {buf}. This returns a String with
|
| 733 |
a comma-separated list of these items:
|
| 734 |
running job is running
|
| 735 |
finished job has finished
|
| 736 |
normal in Terminal-Normal mode
|
| 737 |
One of "running" or "finished" is always present.
|
| 738 |
|
| 739 |
+
{buf} must be the buffer number of a terminal window. If the
|
| 740 |
buffer does not exist or is not a terminal window, an empty
|
| 741 |
string is returned.
|
| 742 |
|
|
|
|
| 747 |
|
| 748 |
|
| 749 |
term_gettitle({buf}) *term_gettitle()*
|
| 750 |
+
Get the title of terminal {buf}. This is the title that the
|
| 751 |
job in the terminal has set.
|
| 752 |
|
| 753 |
+
{buf} must be the buffer number of a terminal window. If the
|
| 754 |
buffer does not exist or is not a terminal window, an empty
|
| 755 |
string is returned.
|
| 756 |
|
|
|
|
| 765 |
terminal window {buf}. {buf} is used as with |term_getsize()|.
|
| 766 |
|
| 767 |
When {input} is omitted or 0, return the name for writing
|
| 768 |
+
(stdout). When {input} is 1 return the name for reading
|
| 769 |
+
(stdin). On UNIX, both return same name.
|
| 770 |
|
| 771 |
Can also be used as a |method|: >
|
| 772 |
GetBufnr()->term_gettty()
|
|
|
|
| 809 |
Send keystrokes {keys} to terminal {buf}.
|
| 810 |
{buf} is used as with |term_getsize()|.
|
| 811 |
|
| 812 |
+
{keys} are translated as key sequences. For example, "\<c-x>"
|
| 813 |
means the character CTRL-X.
|
| 814 |
|
| 815 |
Can also be used as a |method|: >
|
|
|
|
| 905 |
|
| 906 |
|
| 907 |
term_setsize({buf}, {rows}, {cols}) *term_setsize()* *E955*
|
| 908 |
+
Set the size of terminal {buf}. The size of the window
|
| 909 |
containing the terminal will also be adjusted, if possible.
|
| 910 |
If {rows} or {cols} is zero or negative, that dimension is not
|
| 911 |
changed.
|
|
|
|
| 923 |
term_start({cmd} [, {options}]) *term_start()*
|
| 924 |
Open a terminal window and run {cmd} in it.
|
| 925 |
|
| 926 |
+
{cmd} can be a string or a List, like with |job_start()|. The
|
| 927 |
string "NONE" can be used to open a terminal window without
|
| 928 |
starting a job, the pty of the terminal can be used by a
|
| 929 |
command like gdb.
|
|
|
|
| 970 |
"open": open window if needed
|
| 971 |
Note that "open" can be interruptive.
|
| 972 |
See |term++close| and |term++open|.
|
| 973 |
+
"term_opencmd" command to use for opening the window
|
| 974 |
+
when "open" is used for "term_finish";
|
| 975 |
+
must have "%d" where the buffer number
|
| 976 |
+
goes, e.g. "10split|buffer %d"; when not
|
| 977 |
specified "botright sbuf %d" is used
|
| 978 |
"term_highlight" highlight group to use instead of
|
| 979 |
"Terminal"
|
| 980 |
"eof_chars" Text to send after all buffer lines were
|
| 981 |
written to the terminal. When not set
|
| 982 |
+
CTRL-D is used on MS-Windows. For Python
|
| 983 |
+
use CTRL-Z or "exit()". For a shell use
|
| 984 |
"exit". A CR is always added.
|
| 985 |
"ansi_colors" A list of 16 color names or hex codes
|
| 986 |
defining the ANSI palette used in GUI
|
|
|
|
| 1015 |
There are several ways to communicate with the job running in a terminal:
|
| 1016 |
- Use |term_sendkeys()| to send text and escape sequences from Vim to the job.
|
| 1017 |
- Use the JSON API to send encoded commands from the job to Vim.
|
| 1018 |
+
- Use the |client-server| mechanism. This works on machines with an X server
|
| 1019 |
and on MS-Windows.
|
| 1020 |
|
| 1021 |
|
|
|
|
| 1181 |
*terminal-dumptest*
|
| 1182 |
For an example see the Test_syntax_c() function in
|
| 1183 |
src/testdir/test_syntax.vim. The main parts are:
|
| 1184 |
+
- Write a file you want to test with. This is useful for testing syntax
|
| 1185 |
highlighting. You can also start Vim with an empty buffer.
|
| 1186 |
- Run Vim in a terminal with a specific size. The default is 20 lines of 75
|
| 1187 |
characters. This makes sure the dump is always this size. The function
|
|
|
|
| 1259 |
+ character missing in first
|
| 1260 |
- character missing in second
|
| 1261 |
|
| 1262 |
+
Alternatively, press "s" to swap the first and second dump. Do this several
|
| 1263 |
times so that you can spot the difference in the context of the text.
|
| 1264 |
|
| 1265 |
==============================================================================
|
|
|
|
| 1314 |
*termdebug-timeout*
|
| 1315 |
Depending on how gdb is launched, termdebug startup time may vary.
|
| 1316 |
To avoid termdebug to get stuck if the startup process of gdb takes too long,
|
| 1317 |
+
a configurable timeout is included. Such time out is configurable in terms of
|
| 1318 |
multiple of 10ms: >
|
| 1319 |
let g:termdebug_config['timeout'] = 500 # 500 * 10ms = 5 seconds.
|
| 1320 |
|
|
|
|
| 1361 |
Put focus on the gdb window and type: >
|
| 1362 |
break ex_help
|
| 1363 |
run
|
| 1364 |
+
Vim will start running in the program window. Put focus there and type: >
|
| 1365 |
:help gui
|
| 1366 |
Gdb will run into the ex_help breakpoint. The source window now shows the
|
| 1367 |
ex_cmds.c file. A red "1 " marker will appear in the signcolumn where the
|
|
|
|
| 1389 |
|
| 1390 |
You can type more advanced commands in the gdb window. For example, type: >
|
| 1391 |
watch curbuf
|
| 1392 |
+
Now click "Cont" in the toolbar (or type "cont" in the gdb window). Execution
|
| 1393 |
will now continue until the value of "curbuf" changes, which is in do_ecmd().
|
| 1394 |
To remove this watchpoint again type in the gdb window: >
|
| 1395 |
delete 3
|
|
|
|
| 1501 |
*:Asm* jump to the window with the disassembly, create it if there
|
| 1502 |
isn't one
|
| 1503 |
*:Var* jump to the window with the local and argument variables,
|
| 1504 |
+
create it if there isn't one. This window updates whenever the
|
| 1505 |
program is stopped
|
| 1506 |
|
| 1507 |
Events ~
|
|
|
|
| 1810 |
Change default signs ~
|
| 1811 |
*termdebug_signs*
|
| 1812 |
Termdebug uses the hex number of the breakpoint ID in the signcolumn to
|
| 1813 |
+
represent breakpoints. If it is greater than "0xFF", then it will be
|
| 1814 |
+
displayed as "F+", due to we really only have two screen cells for the sign.
|
| 1815 |
You may also use decimal breakpoint signs instead, in which case IDs greater
|
| 1816 |
than 99 will be displayed as "9+".
|
| 1817 |
|
|
|
|
| 1858 |
|
| 1859 |
Evaluate in Popup Window at Cursor ~
|
| 1860 |
*termdebug_evaluate_in_popup*
|
| 1861 |
+
By default |:Evaluate| will simply echo its output. For larger entities this
|
| 1862 |
might become difficult to read or even truncated.
|
| 1863 |
Alternatively, the evaluation result may be output into a popup window at the
|
| 1864 |
current cursor position: >
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*testing.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -26,7 +26,7 @@ There are two types of tests added over time:
|
|
| 26 |
|
| 27 |
*new-style-testing*
|
| 28 |
New tests should be added as new style tests. The test scripts are named
|
| 29 |
-
test_<feature>.vim (replace <feature> with the feature under test).
|
| 30 |
functions such as |assert_equal()| to keep the test commands and the expected
|
| 31 |
result in one place.
|
| 32 |
*old-style-testing*
|
|
@@ -58,7 +58,7 @@ test_autochdir() *test_autochdir()*
|
|
| 58 |
|
| 59 |
test_feedinput({string}) *test_feedinput()*
|
| 60 |
Characters in {string} are queued for processing as if they
|
| 61 |
-
were typed by the user.
|
| 62 |
This function works only when with |+unix| or GUI is running.
|
| 63 |
|
| 64 |
Can also be used as a |method|: >
|
|
@@ -96,7 +96,7 @@ test_getvalue({name}) *test_getvalue()*
|
|
| 96 |
*test_gui_event()*
|
| 97 |
test_gui_event({event}, {args})
|
| 98 |
Generate a GUI {event} with arguments {args} for testing Vim
|
| 99 |
-
functionality.
|
| 100 |
running.
|
| 101 |
|
| 102 |
{event} is a String and the supported values are:
|
|
@@ -116,7 +116,7 @@ test_gui_event({event}, {args})
|
|
| 116 |
files: List of file names
|
| 117 |
row: window row number
|
| 118 |
col: window column number
|
| 119 |
-
modifiers: key modifiers.
|
| 120 |
0x4 Shift
|
| 121 |
0x8 Alt
|
| 122 |
0x10 Ctrl
|
|
@@ -131,7 +131,7 @@ test_gui_event({event}, {args})
|
|
| 131 |
in {args} are:
|
| 132 |
find_text: string to find.
|
| 133 |
repl_text: replacement string.
|
| 134 |
-
flags: flags controlling the find/replace.
|
| 135 |
values are:
|
| 136 |
1 search next string (find dialog)
|
| 137 |
2 search next string (replace dialog)
|
|
@@ -176,7 +176,7 @@ test_gui_event({event}, {args})
|
|
| 176 |
Set or drag the left, right or horizontal scrollbar. Only
|
| 177 |
works when the scrollbar actually exists. The supported
|
| 178 |
items in {args} are:
|
| 179 |
-
which: Selects the scrollbar.
|
| 180 |
are:
|
| 181 |
left Left scrollbar of the current window
|
| 182 |
right Right scrollbar of the current window
|
|
@@ -202,14 +202,14 @@ test_gui_event({event}, {args})
|
|
| 202 |
|
| 203 |
"tabline":
|
| 204 |
Inject a mouse click event on the tabline to select a
|
| 205 |
-
tabpage.
|
| 206 |
tabnr: tab page number
|
| 207 |
|
| 208 |
"tabmenu":
|
| 209 |
-
Inject an event to select a tabline menu entry.
|
| 210 |
supported items in {args} are:
|
| 211 |
tabnr: tab page number
|
| 212 |
-
item: tab page menu item number.
|
| 213 |
menu item, 2 for the second item and so on.
|
| 214 |
|
| 215 |
After injecting the GUI events you probably should call
|
|
@@ -299,7 +299,7 @@ test_mswin_event({event}, {args}) *test_mswin_event()*
|
|
| 299 |
8 alt is pressed
|
| 300 |
Note: These values are different from the
|
| 301 |
mouse modifiers.
|
| 302 |
-
execute: Optional.
|
| 303 |
When this is included and set to true
|
| 304 |
(non-zero) then Vim will process any buffered
|
| 305 |
unprocessed key events. All other {args}
|
|
@@ -307,8 +307,8 @@ test_mswin_event({event}, {args}) *test_mswin_event()*
|
|
| 307 |
|
| 308 |
"set_keycode_trans_strategy":
|
| 309 |
|w32-experimental-keycode-trans-strategy|
|
| 310 |
-
Switch the keycode translation method.
|
| 311 |
-
are:
|
| 312 |
experimental: The method used after Patch v8.2.4807
|
| 313 |
using ToUnicode() Win API call.
|
| 314 |
classic: The method used pre Patch v8.2.4807
|
|
@@ -323,55 +323,55 @@ test_mswin_event({event}, {args}) *test_mswin_event()*
|
|
| 323 |
Return type: |vim9-boolean|
|
| 324 |
|
| 325 |
test_null_blob() *test_null_blob()*
|
| 326 |
-
Return a |Blob| that is null.
|
| 327 |
|
| 328 |
Return type: |Blob|
|
| 329 |
|
| 330 |
test_null_channel() *test_null_channel()*
|
| 331 |
-
Return a |Channel| that is null.
|
| 332 |
{only available when compiled with the +channel feature}
|
| 333 |
|
| 334 |
Return type: |Channel|
|
| 335 |
|
| 336 |
test_null_dict() *test_null_dict()*
|
| 337 |
-
Return a |Dict| that is null.
|
| 338 |
|
| 339 |
Return type: dict<any>
|
| 340 |
|
| 341 |
test_null_function() *test_null_function()*
|
| 342 |
-
Return a |Funcref| that is null.
|
| 343 |
|
| 344 |
Return type: func(...): unknown
|
| 345 |
|
| 346 |
test_null_job() *test_null_job()*
|
| 347 |
-
Return a |Job| that is null.
|
| 348 |
{only available when compiled with the +job feature}
|
| 349 |
|
| 350 |
Return type: |job|
|
| 351 |
|
| 352 |
test_null_list() *test_null_list()*
|
| 353 |
-
Return a |List| that is null.
|
| 354 |
|
| 355 |
Return type: list<any>
|
| 356 |
|
| 357 |
test_null_partial() *test_null_partial()*
|
| 358 |
-
Return a |Partial| that is null.
|
| 359 |
|
| 360 |
Return type: func(...): unknown
|
| 361 |
|
| 362 |
test_null_string() *test_null_string()*
|
| 363 |
-
Return a |String| that is null.
|
| 364 |
|
| 365 |
Return type: |String|
|
| 366 |
|
| 367 |
test_null_tuple() *test_null_tuple()*
|
| 368 |
-
Return a |Tuple| that is null.
|
| 369 |
|
| 370 |
Return type: |Tuple|
|
| 371 |
|
| 372 |
test_option_not_set({name}) *test_option_not_set()*
|
| 373 |
Reset the flag that indicates option {name} was set. Thus it
|
| 374 |
-
looks like it still has the default value.
|
| 375 |
set ambiwidth=double
|
| 376 |
call test_option_not_set('ambiwidth')
|
| 377 |
< Now the 'ambiwidth' option behaves like it was never changed,
|
|
@@ -384,8 +384,8 @@ test_option_not_set({name}) *test_option_not_set()*
|
|
| 384 |
Return type: |Number|
|
| 385 |
|
| 386 |
test_override({name}, {val}) *test_override()*
|
| 387 |
-
Overrides certain parts of Vim's internal processing to be
|
| 388 |
-
to run tests.
|
| 389 |
The override is enabled when {val} is non-zero and removed
|
| 390 |
when {val} is zero.
|
| 391 |
Current supported values for {name} are:
|
|
@@ -422,7 +422,7 @@ test_override({name}, {val}) *test_override()*
|
|
| 422 |
|
| 423 |
"starting" is to be used when a test should behave like
|
| 424 |
startup was done. Since the tests are run by sourcing a
|
| 425 |
-
script the "starting" variable is non-zero.
|
| 426 |
good thing (tests run faster), but sometimes this changes
|
| 427 |
behavior in a way that the test doesn't work properly.
|
| 428 |
When using: >
|
|
@@ -481,12 +481,12 @@ test_srand_seed([{seed}]) *test_srand_seed()*
|
|
| 481 |
Return type: |Number|
|
| 482 |
|
| 483 |
test_unknown() *test_unknown()*
|
| 484 |
-
Return a value with unknown type.
|
| 485 |
|
| 486 |
Return type: unknown
|
| 487 |
|
| 488 |
test_void() *test_void()*
|
| 489 |
-
Return a value with void type.
|
| 490 |
|
| 491 |
Return type: void
|
| 492 |
|
|
@@ -565,7 +565,7 @@ assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
|
| 565 |
error message. Also see |assert-return|.
|
| 566 |
*E856*
|
| 567 |
When {error} is a string it must be found literally in the
|
| 568 |
-
first reported error.
|
| 569 |
including the colon, e.g. "E123:". >
|
| 570 |
call assert_fails('bad cmd', 'E987:')
|
| 571 |
<
|
|
@@ -575,8 +575,8 @@ assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
|
| 575 |
call assert_fails('cmd', ['E987:.*expected bool'])
|
| 576 |
< The second pattern, if present, is matched against the last
|
| 577 |
reported error.
|
| 578 |
-
If there is only one error then both patterns must match.
|
| 579 |
-
can be used to check that there is only one error.
|
| 580 |
To only match the last error use an empty string for the first
|
| 581 |
error: >
|
| 582 |
call assert_fails('cmd', ['', 'E987:'])
|
|
@@ -586,7 +586,7 @@ assert_fails({cmd} [, {error} [, {msg} [, {lnum} [, {context}]]]])
|
|
| 586 |
*E1115*
|
| 587 |
When {lnum} is present and not negative, and the {error}
|
| 588 |
argument is present and matches, then this is compared with
|
| 589 |
-
the line number at which the error was reported.
|
| 590 |
the line number in a function or in a script.
|
| 591 |
*E1116*
|
| 592 |
When {context} is present it is used as a pattern and matched
|
|
@@ -609,7 +609,7 @@ assert_false({actual} [, {msg}]) *assert_false()*
|
|
| 609 |
location of the assert when run from a script.
|
| 610 |
Also see |assert-return|.
|
| 611 |
|
| 612 |
-
A value is false when it is zero.
|
| 613 |
number the assert fails.
|
| 614 |
|
| 615 |
Can also be used as a |method|: >
|
|
|
|
| 1 |
+
*testing.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 26 |
|
| 27 |
*new-style-testing*
|
| 28 |
New tests should be added as new style tests. The test scripts are named
|
| 29 |
+
test_<feature>.vim (replace <feature> with the feature under test). These use
|
| 30 |
functions such as |assert_equal()| to keep the test commands and the expected
|
| 31 |
result in one place.
|
| 32 |
*old-style-testing*
|
|
|
|
| 58 |
|
| 59 |
test_feedinput({string}) *test_feedinput()*
|
| 60 |
Characters in {string} are queued for processing as if they
|
| 61 |
+
were typed by the user. This uses a low level input buffer.
|
| 62 |
This function works only when with |+unix| or GUI is running.
|
| 63 |
|
| 64 |
Can also be used as a |method|: >
|
|
|
|
| 96 |
*test_gui_event()*
|
| 97 |
test_gui_event({event}, {args})
|
| 98 |
Generate a GUI {event} with arguments {args} for testing Vim
|
| 99 |
+
functionality. This function works only when the GUI is
|
| 100 |
running.
|
| 101 |
|
| 102 |
{event} is a String and the supported values are:
|
|
|
|
| 116 |
files: List of file names
|
| 117 |
row: window row number
|
| 118 |
col: window column number
|
| 119 |
+
modifiers: key modifiers. The supported values are:
|
| 120 |
0x4 Shift
|
| 121 |
0x8 Alt
|
| 122 |
0x10 Ctrl
|
|
|
|
| 131 |
in {args} are:
|
| 132 |
find_text: string to find.
|
| 133 |
repl_text: replacement string.
|
| 134 |
+
flags: flags controlling the find/replace. Supported
|
| 135 |
values are:
|
| 136 |
1 search next string (find dialog)
|
| 137 |
2 search next string (replace dialog)
|
|
|
|
| 176 |
Set or drag the left, right or horizontal scrollbar. Only
|
| 177 |
works when the scrollbar actually exists. The supported
|
| 178 |
items in {args} are:
|
| 179 |
+
which: Selects the scrollbar. The supported values
|
| 180 |
are:
|
| 181 |
left Left scrollbar of the current window
|
| 182 |
right Right scrollbar of the current window
|
|
|
|
| 202 |
|
| 203 |
"tabline":
|
| 204 |
Inject a mouse click event on the tabline to select a
|
| 205 |
+
tabpage. The supported items in {args} are:
|
| 206 |
tabnr: tab page number
|
| 207 |
|
| 208 |
"tabmenu":
|
| 209 |
+
Inject an event to select a tabline menu entry. The
|
| 210 |
supported items in {args} are:
|
| 211 |
tabnr: tab page number
|
| 212 |
+
item: tab page menu item number. 1 for the first
|
| 213 |
menu item, 2 for the second item and so on.
|
| 214 |
|
| 215 |
After injecting the GUI events you probably should call
|
|
|
|
| 299 |
8 alt is pressed
|
| 300 |
Note: These values are different from the
|
| 301 |
mouse modifiers.
|
| 302 |
+
execute: Optional. Similar to |feedkeys()| mode x.
|
| 303 |
When this is included and set to true
|
| 304 |
(non-zero) then Vim will process any buffered
|
| 305 |
unprocessed key events. All other {args}
|
|
|
|
| 307 |
|
| 308 |
"set_keycode_trans_strategy":
|
| 309 |
|w32-experimental-keycode-trans-strategy|
|
| 310 |
+
Switch the keycode translation method. The supported
|
| 311 |
+
methods are:
|
| 312 |
experimental: The method used after Patch v8.2.4807
|
| 313 |
using ToUnicode() Win API call.
|
| 314 |
classic: The method used pre Patch v8.2.4807
|
|
|
|
| 323 |
Return type: |vim9-boolean|
|
| 324 |
|
| 325 |
test_null_blob() *test_null_blob()*
|
| 326 |
+
Return a |Blob| that is null. Only useful for testing.
|
| 327 |
|
| 328 |
Return type: |Blob|
|
| 329 |
|
| 330 |
test_null_channel() *test_null_channel()*
|
| 331 |
+
Return a |Channel| that is null. Only useful for testing.
|
| 332 |
{only available when compiled with the +channel feature}
|
| 333 |
|
| 334 |
Return type: |Channel|
|
| 335 |
|
| 336 |
test_null_dict() *test_null_dict()*
|
| 337 |
+
Return a |Dict| that is null. Only useful for testing.
|
| 338 |
|
| 339 |
Return type: dict<any>
|
| 340 |
|
| 341 |
test_null_function() *test_null_function()*
|
| 342 |
+
Return a |Funcref| that is null. Only useful for testing.
|
| 343 |
|
| 344 |
Return type: func(...): unknown
|
| 345 |
|
| 346 |
test_null_job() *test_null_job()*
|
| 347 |
+
Return a |Job| that is null. Only useful for testing.
|
| 348 |
{only available when compiled with the +job feature}
|
| 349 |
|
| 350 |
Return type: |job|
|
| 351 |
|
| 352 |
test_null_list() *test_null_list()*
|
| 353 |
+
Return a |List| that is null. Only useful for testing.
|
| 354 |
|
| 355 |
Return type: list<any>
|
| 356 |
|
| 357 |
test_null_partial() *test_null_partial()*
|
| 358 |
+
Return a |Partial| that is null. Only useful for testing.
|
| 359 |
|
| 360 |
Return type: func(...): unknown
|
| 361 |
|
| 362 |
test_null_string() *test_null_string()*
|
| 363 |
+
Return a |String| that is null. Only useful for testing.
|
| 364 |
|
| 365 |
Return type: |String|
|
| 366 |
|
| 367 |
test_null_tuple() *test_null_tuple()*
|
| 368 |
+
Return a |Tuple| that is null. Only useful for testing.
|
| 369 |
|
| 370 |
Return type: |Tuple|
|
| 371 |
|
| 372 |
test_option_not_set({name}) *test_option_not_set()*
|
| 373 |
Reset the flag that indicates option {name} was set. Thus it
|
| 374 |
+
looks like it still has the default value. Use like this: >
|
| 375 |
set ambiwidth=double
|
| 376 |
call test_option_not_set('ambiwidth')
|
| 377 |
< Now the 'ambiwidth' option behaves like it was never changed,
|
|
|
|
| 384 |
Return type: |Number|
|
| 385 |
|
| 386 |
test_override({name}, {val}) *test_override()*
|
| 387 |
+
Overrides certain parts of Vim's internal processing to be
|
| 388 |
+
able to run tests. Only to be used for testing Vim!
|
| 389 |
The override is enabled when {val} is non-zero and removed
|
| 390 |
when {val} is zero.
|
| 391 |
Current supported values for {name} are:
|
|
|
|
| 422 |
|
| 423 |
"starting" is to be used when a test should behave like
|
| 424 |
startup was done. Since the tests are run by sourcing a
|
| 425 |
+
script the "starting" variable is non-zero. This is usually a
|
| 426 |
good thing (tests run faster), but sometimes this changes
|
| 427 |
behavior in a way that the test doesn't work properly.
|
| 428 |
When using: >
|
|
|
|
| 481 |
Return type: |Number|
|
| 482 |
|
| 483 |
test_unknown() *test_unknown()*
|
| 484 |
+
Return a value with unknown type. Only useful for testing.
|
| 485 |
|
| 486 |
Return type: unknown
|
| 487 |
|
| 488 |
test_void() *test_void()*
|
| 489 |
+
Return a value with void type. Only useful for testing.
|
| 490 |
|
| 491 |
Return type: void
|
| 492 |
|
|
|
|
| 565 |
error message. Also see |assert-return|.
|
| 566 |
*E856*
|
| 567 |
When {error} is a string it must be found literally in the
|
| 568 |
+
first reported error. Most often this will be the error code,
|
| 569 |
including the colon, e.g. "E123:". >
|
| 570 |
call assert_fails('bad cmd', 'E987:')
|
| 571 |
<
|
|
|
|
| 575 |
call assert_fails('cmd', ['E987:.*expected bool'])
|
| 576 |
< The second pattern, if present, is matched against the last
|
| 577 |
reported error.
|
| 578 |
+
If there is only one error then both patterns must match.
|
| 579 |
+
This can be used to check that there is only one error.
|
| 580 |
To only match the last error use an empty string for the first
|
| 581 |
error: >
|
| 582 |
call assert_fails('cmd', ['', 'E987:'])
|
|
|
|
| 586 |
*E1115*
|
| 587 |
When {lnum} is present and not negative, and the {error}
|
| 588 |
argument is present and matches, then this is compared with
|
| 589 |
+
the line number at which the error was reported. That can be
|
| 590 |
the line number in a function or in a script.
|
| 591 |
*E1116*
|
| 592 |
When {context} is present it is used as a pattern and matched
|
|
|
|
| 609 |
location of the assert when run from a script.
|
| 610 |
Also see |assert-return|.
|
| 611 |
|
| 612 |
+
A value is false when it is zero. When {actual} is not a
|
| 613 |
number the assert fails.
|
| 614 |
|
| 615 |
Can also be used as a |method|: >
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*textprop.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -194,7 +194,7 @@ prop_add({lnum}, {col}, {props})
|
|
| 194 |
the property type does not have "end_incl" set.
|
| 195 |
|
| 196 |
"type" will first be looked up in the buffer the property is
|
| 197 |
-
added to.
|
| 198 |
If not found an error is given.
|
| 199 |
*virtual-text*
|
| 200 |
When "text" is used and the column is non-zero then this text
|
|
@@ -329,14 +329,14 @@ prop_list({lnum} [, {props}]) *prop_list()*
|
|
| 329 |
A negative value is used as an offset from the
|
| 330 |
last buffer line; -1 refers to the last buffer
|
| 331 |
line.
|
| 332 |
-
types List of property type names.
|
| 333 |
properties that match one of the type names.
|
| 334 |
-
ids List of property identifiers.
|
| 335 |
-
properties with one of these identifiers.
|
| 336 |
|
| 337 |
The properties are ordered by starting column and priority.
|
| 338 |
Each property is a Dict with these entries:
|
| 339 |
-
lnum starting line number.
|
| 340 |
returning text properties between {lnum} and
|
| 341 |
{end_lnum}.
|
| 342 |
col starting column
|
|
|
|
| 1 |
+
*textprop.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 194 |
the property type does not have "end_incl" set.
|
| 195 |
|
| 196 |
"type" will first be looked up in the buffer the property is
|
| 197 |
+
added to. When not found, the global property types are used.
|
| 198 |
If not found an error is given.
|
| 199 |
*virtual-text*
|
| 200 |
When "text" is used and the column is non-zero then this text
|
|
|
|
| 329 |
A negative value is used as an offset from the
|
| 330 |
last buffer line; -1 refers to the last buffer
|
| 331 |
line.
|
| 332 |
+
types List of property type names. Return only text
|
| 333 |
properties that match one of the type names.
|
| 334 |
+
ids List of property identifiers. Return only
|
| 335 |
+
text properties with one of these identifiers.
|
| 336 |
|
| 337 |
The properties are ordered by starting column and priority.
|
| 338 |
Each property is a Dict with these entries:
|
| 339 |
+
lnum starting line number. Present only when
|
| 340 |
returning text properties between {lnum} and
|
| 341 |
{end_lnum}.
|
| 342 |
col starting column
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*tips.txt* For Vim version 9.1. Last change:
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -183,10 +183,10 @@ To make this easier, you could use these mappings: >
|
|
| 183 |
You then lose the ability to copy text from the line above/below the cursor
|
| 184 |
|i_CTRL-E|.
|
| 185 |
|
| 186 |
-
Also consider setting 'scrolloff' to a larger value, so that you can always
|
| 187 |
-
some context around the cursor. If 'scrolloff' is bigger than half the
|
| 188 |
-
height, the cursor will always be in the middle and the text is
|
| 189 |
-
the cursor is moved up/down.
|
| 190 |
|
| 191 |
==============================================================================
|
| 192 |
Smooth scrolling *scroll-smooth*
|
|
|
|
| 1 |
+
*tips.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 183 |
You then lose the ability to copy text from the line above/below the cursor
|
| 184 |
|i_CTRL-E|.
|
| 185 |
|
| 186 |
+
Also consider setting 'scrolloff' to a larger value, so that you can always
|
| 187 |
+
see some context around the cursor. If 'scrolloff' is bigger than half the
|
| 188 |
+
window height, the cursor will always be in the middle and the text is
|
| 189 |
+
scrolled when the cursor is moved up/down.
|
| 190 |
|
| 191 |
==============================================================================
|
| 192 |
Smooth scrolling *scroll-smooth*
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*undo.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -112,7 +112,7 @@ parts. E.g., for each sentence. |i_CTRL-G_u|
|
|
| 112 |
|
| 113 |
Setting the value of 'undolevels' also closes the undo block. Even when the
|
| 114 |
new value is equal to the old value. Use `g:undolevels` to explicitly read
|
| 115 |
-
and write only the global value of 'undolevels'.
|
| 116 |
&g:undolevels = &g:undolevels
|
| 117 |
In legacy script: >
|
| 118 |
let &g:undolevels = &g:undolevels
|
|
@@ -156,7 +156,7 @@ This is explained in the user manual: |usr_32.txt|.
|
|
| 156 |
MM/DD HH:MM:SS idem, with month and day
|
| 157 |
YYYY/MM/DD HH:MM:SS idem, with year
|
| 158 |
The "saved" column specifies, if this change was
|
| 159 |
-
written to disk and which file write it was.
|
| 160 |
be used with the |:later| and |:earlier| commands.
|
| 161 |
For more details use the |undotree()| function.
|
| 162 |
|
|
@@ -256,7 +256,7 @@ for, you can use a BufWritePre autocommand: >
|
|
| 256 |
au BufWritePre /tmp/* setlocal noundofile
|
| 257 |
|
| 258 |
Vim saves undo trees in a separate undo file, one for each edited file, using
|
| 259 |
-
a simple scheme that maps filesystem paths directly to undo files.
|
| 260 |
detect if an undo file is no longer synchronized with the file it was written
|
| 261 |
for (with a hash of the file contents) and ignore it when the file was changed
|
| 262 |
after the undo file was written, to prevent corruption. An undo file is also
|
|
@@ -285,11 +285,11 @@ respectively:
|
|
| 285 |
(the magic number at the start of the file is wrong), then
|
| 286 |
this fails, unless the ! was added.
|
| 287 |
If it exists and does look like an undo file it is
|
| 288 |
-
overwritten.
|
| 289 |
written.
|
| 290 |
Implementation detail: Overwriting happens by first deleting
|
| 291 |
the existing file and then creating a new file with the same
|
| 292 |
-
name.
|
| 293 |
in a write-protected directory.
|
| 294 |
|
| 295 |
*:rund* *:rundo*
|
|
@@ -385,11 +385,12 @@ information you can use these commands: >
|
|
| 385 |
|
| 386 |
Note use of `&l:undolevels` to explicitly read the local value of 'undolevels'
|
| 387 |
and the use of `:setlocal` to change only the local option (which takes
|
| 388 |
-
precedence over the corresponding global option value). Saving the option
|
| 389 |
-
via the use of `&undolevels` is unpredictable; it reads either the local
|
| 390 |
-
(if one has been set) or the global value (otherwise). Also, if a local
|
| 391 |
-
has been set, changing the option via `:set undolevels` will change both
|
| 392 |
-
global and local values, requiring extra work to save and restore both
|
|
|
|
| 393 |
|
| 394 |
Marks for the buffer ('a to 'z) are also saved and restored, together with the
|
| 395 |
text.
|
|
|
|
| 1 |
+
*undo.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 112 |
|
| 113 |
Setting the value of 'undolevels' also closes the undo block. Even when the
|
| 114 |
new value is equal to the old value. Use `g:undolevels` to explicitly read
|
| 115 |
+
and write only the global value of 'undolevels'. In |Vim9| script: >
|
| 116 |
&g:undolevels = &g:undolevels
|
| 117 |
In legacy script: >
|
| 118 |
let &g:undolevels = &g:undolevels
|
|
|
|
| 156 |
MM/DD HH:MM:SS idem, with month and day
|
| 157 |
YYYY/MM/DD HH:MM:SS idem, with year
|
| 158 |
The "saved" column specifies, if this change was
|
| 159 |
+
written to disk and which file write it was. This can
|
| 160 |
be used with the |:later| and |:earlier| commands.
|
| 161 |
For more details use the |undotree()| function.
|
| 162 |
|
|
|
|
| 256 |
au BufWritePre /tmp/* setlocal noundofile
|
| 257 |
|
| 258 |
Vim saves undo trees in a separate undo file, one for each edited file, using
|
| 259 |
+
a simple scheme that maps filesystem paths directly to undo files. Vim will
|
| 260 |
detect if an undo file is no longer synchronized with the file it was written
|
| 261 |
for (with a hash of the file contents) and ignore it when the file was changed
|
| 262 |
after the undo file was written, to prevent corruption. An undo file is also
|
|
|
|
| 285 |
(the magic number at the start of the file is wrong), then
|
| 286 |
this fails, unless the ! was added.
|
| 287 |
If it exists and does look like an undo file it is
|
| 288 |
+
overwritten. If there is no undo-history, nothing will be
|
| 289 |
written.
|
| 290 |
Implementation detail: Overwriting happens by first deleting
|
| 291 |
the existing file and then creating a new file with the same
|
| 292 |
+
name. So it is not possible to overwrite an existing undofile
|
| 293 |
in a write-protected directory.
|
| 294 |
|
| 295 |
*:rund* *:rundo*
|
|
|
|
| 385 |
|
| 386 |
Note use of `&l:undolevels` to explicitly read the local value of 'undolevels'
|
| 387 |
and the use of `:setlocal` to change only the local option (which takes
|
| 388 |
+
precedence over the corresponding global option value). Saving the option
|
| 389 |
+
value via the use of `&undolevels` is unpredictable; it reads either the local
|
| 390 |
+
value (if one has been set) or the global value (otherwise). Also, if a local
|
| 391 |
+
value has been set, changing the option via `:set undolevels` will change both
|
| 392 |
+
the global and local values, requiring extra work to save and restore both
|
| 393 |
+
values.
|
| 394 |
|
| 395 |
Marks for the buffer ('a to 'z) are also saved and restored, together with the
|
| 396 |
text.
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*userfunc.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -65,7 +65,7 @@ define a global function.
|
|
| 65 |
<
|
| 66 |
*:function-verbose*
|
| 67 |
When 'verbose' is non-zero, listing a function will also display where it was
|
| 68 |
-
last defined.
|
| 69 |
|
| 70 |
:verbose function SetFileTypeSH
|
| 71 |
function SetFileTypeSH(name)
|
|
|
|
| 1 |
+
*userfunc.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 65 |
<
|
| 66 |
*:function-verbose*
|
| 67 |
When 'verbose' is non-zero, listing a function will also display where it was
|
| 68 |
+
last defined. Example: >
|
| 69 |
|
| 70 |
:verbose function SetFileTypeSH
|
| 71 |
function SetFileTypeSH(name)
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*various.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -586,13 +586,13 @@ N *+X11* Unix only: can restore window title |X11|
|
|
| 586 |
:redi[r] @{a-z}>> Append messages to register {a-z}.
|
| 587 |
|
| 588 |
:redi[r] @*>
|
| 589 |
-
:redi[r] @+> Redirect messages to the selection or clipboard.
|
| 590 |
backward compatibility, the ">" after the register
|
| 591 |
-
name can be omitted.
|
| 592 |
:redi[r] @*>>
|
| 593 |
:redi[r] @+>> Append messages to the selection or clipboard.
|
| 594 |
|
| 595 |
-
:redi[r] @"> Redirect messages to the unnamed register.
|
| 596 |
backward compatibility, the ">" after the register
|
| 597 |
name can be omitted.
|
| 598 |
:redi[r] @">> Append messages to the unnamed register.
|
|
@@ -628,16 +628,17 @@ N *+X11* Unix only: can restore window title |X11|
|
|
| 628 |
< If the [!] is given, restrict the output of {command}
|
| 629 |
to lines that do NOT match {pattern}.
|
| 630 |
|
| 631 |
-
{pattern} is a Vim search pattern. Instead of
|
| 632 |
-
it in / any non-ID character (see 'isident')
|
| 633 |
-
used, so long as it does not appear in
|
|
|
|
| 634 |
Without the enclosing character the pattern cannot
|
| 635 |
-
include the bar character.
|
| 636 |
|
| 637 |
The pattern is matched against the relevant part of
|
| 638 |
-
the output, not necessarily the whole line.
|
| 639 |
commands support filtering, try it out to check if it
|
| 640 |
-
works.
|
| 641 |
|:#| - filter whole line
|
| 642 |
|:clist| - filter by file name or module name
|
| 643 |
|:command| - filter by command name
|
|
@@ -706,7 +707,7 @@ N *+X11* Unix only: can restore window title |X11|
|
|
| 706 |
*:verb* *:verbose*
|
| 707 |
:[count]verb[ose] {command}
|
| 708 |
Execute {command} with 'verbose' set to [count]. If
|
| 709 |
-
[count] is omitted one is used.
|
| 710 |
used to set 'verbose' to zero.
|
| 711 |
The additional use of ":silent" makes messages
|
| 712 |
generated but not displayed.
|
|
@@ -787,10 +788,10 @@ K Run a program to lookup the keyword under the
|
|
| 787 |
:[N]sl[eep]! [N][m] Same as above, but hide the cursor.
|
| 788 |
|
| 789 |
*:xrestore* *:xr*
|
| 790 |
-
:xr[estore] [display] Reinitializes the connection to the X11 server.
|
| 791 |
-
after the X server restarts, e.g. when running
|
| 792 |
-
long time inside screen/tmux and connecting
|
| 793 |
-
different machines.
|
| 794 |
[display] should be in the format of the $DISPLAY
|
| 795 |
environment variable (e.g. "localhost:10.0")
|
| 796 |
If [display] is omitted, then it reinitializes the
|
|
|
|
| 1 |
+
*various.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 586 |
:redi[r] @{a-z}>> Append messages to register {a-z}.
|
| 587 |
|
| 588 |
:redi[r] @*>
|
| 589 |
+
:redi[r] @+> Redirect messages to the selection or clipboard. For
|
| 590 |
backward compatibility, the ">" after the register
|
| 591 |
+
name can be omitted. See |quotestar| and |quoteplus|.
|
| 592 |
:redi[r] @*>>
|
| 593 |
:redi[r] @+>> Append messages to the selection or clipboard.
|
| 594 |
|
| 595 |
+
:redi[r] @"> Redirect messages to the unnamed register. For
|
| 596 |
backward compatibility, the ">" after the register
|
| 597 |
name can be omitted.
|
| 598 |
:redi[r] @">> Append messages to the unnamed register.
|
|
|
|
| 628 |
< If the [!] is given, restrict the output of {command}
|
| 629 |
to lines that do NOT match {pattern}.
|
| 630 |
|
| 631 |
+
{pattern} is a Vim search pattern. Instead of
|
| 632 |
+
enclosing it in / any non-ID character (see 'isident')
|
| 633 |
+
can be used, so long as it does not appear in
|
| 634 |
+
{pattern}.
|
| 635 |
Without the enclosing character the pattern cannot
|
| 636 |
+
include the bar character. 'ignorecase' is not used.
|
| 637 |
|
| 638 |
The pattern is matched against the relevant part of
|
| 639 |
+
the output, not necessarily the whole line. Only some
|
| 640 |
commands support filtering, try it out to check if it
|
| 641 |
+
works. Some of the commands that support filtering:
|
| 642 |
|:#| - filter whole line
|
| 643 |
|:clist| - filter by file name or module name
|
| 644 |
|:command| - filter by command name
|
|
|
|
| 707 |
*:verb* *:verbose*
|
| 708 |
:[count]verb[ose] {command}
|
| 709 |
Execute {command} with 'verbose' set to [count]. If
|
| 710 |
+
[count] is omitted one is used. ":0verbose" can be
|
| 711 |
used to set 'verbose' to zero.
|
| 712 |
The additional use of ":silent" makes messages
|
| 713 |
generated but not displayed.
|
|
|
|
| 788 |
:[N]sl[eep]! [N][m] Same as above, but hide the cursor.
|
| 789 |
|
| 790 |
*:xrestore* *:xr*
|
| 791 |
+
:xr[estore] [display] Reinitializes the connection to the X11 server.
|
| 792 |
+
Useful after the X server restarts, e.g. when running
|
| 793 |
+
Vim for long time inside screen/tmux and connecting
|
| 794 |
+
from different machines.
|
| 795 |
[display] should be in the format of the $DISPLAY
|
| 796 |
environment variable (e.g. "localhost:10.0")
|
| 797 |
If [display] is omitted, then it reinitializes the
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*vi_diff.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -174,7 +174,8 @@ Multiple windows and buffers. |windows.txt|
|
|
| 174 |
is called a hidden buffer. Many commands and options have been added
|
| 175 |
for this facility.
|
| 176 |
Vim can also use multiple tab pages, each with one or more windows. A
|
| 177 |
-
line with tab labels can be used to quickly switch between these
|
|
|
|
| 178 |
|tab-page|
|
| 179 |
|
| 180 |
Terminal window. |:terminal|
|
|
@@ -1373,7 +1374,7 @@ Vim tries to support some old operating systems, however support for older
|
|
| 1373 |
operating systems might be dropped if maintenance becomes a burden or can no
|
| 1374 |
longer be verified.
|
| 1375 |
|
| 1376 |
-
Here is the status of some operating systems.
|
| 1377 |
support is verified as part of the CI test suite.
|
| 1378 |
|
| 1379 |
System | Status:~
|
|
|
|
| 1 |
+
*vi_diff.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 174 |
is called a hidden buffer. Many commands and options have been added
|
| 175 |
for this facility.
|
| 176 |
Vim can also use multiple tab pages, each with one or more windows. A
|
| 177 |
+
line with tab labels can be used to quickly switch between these
|
| 178 |
+
pages.
|
| 179 |
|tab-page|
|
| 180 |
|
| 181 |
Terminal window. |:terminal|
|
|
|
|
| 1374 |
operating systems might be dropped if maintenance becomes a burden or can no
|
| 1375 |
longer be verified.
|
| 1376 |
|
| 1377 |
+
Here is the status of some operating systems. Note fully supported means,
|
| 1378 |
support is verified as part of the CI test suite.
|
| 1379 |
|
| 1380 |
System | Status:~
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*visual.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -128,8 +128,8 @@ gN Like |gn| but searches backward, like with `N`.
|
|
| 128 |
active it is stopped. Only when 'mouse' option
|
| 129 |
contains 'n' or 'a'. If the position is within 'so'
|
| 130 |
lines from the last line on the screen the text is
|
| 131 |
-
scrolled up. If the position is within 'so' lines
|
| 132 |
-
the first line on the screen the text is scrolled
|
| 133 |
down.
|
| 134 |
|
| 135 |
*<RightMouse>*
|
|
@@ -352,10 +352,10 @@ all lines.
|
|
| 352 |
|
| 353 |
*v_b_<*
|
| 354 |
Visual-block Shift *v_b_>*
|
| 355 |
-
The block is shifted by 'shiftwidth'. The RHS of the block is irrelevant.
|
| 356 |
-
LHS of the block determines the point from which to apply a right shift,
|
| 357 |
-
padding includes TABs optimally according to 'ts' and 'et'. The LHS of
|
| 358 |
-
block determines the point up to which to shift left.
|
| 359 |
See |v_b_>_example|.
|
| 360 |
See |v_b_<_example|.
|
| 361 |
|
|
|
|
| 1 |
+
*visual.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 128 |
active it is stopped. Only when 'mouse' option
|
| 129 |
contains 'n' or 'a'. If the position is within 'so'
|
| 130 |
lines from the last line on the screen the text is
|
| 131 |
+
scrolled up. If the position is within 'so' lines
|
| 132 |
+
from the first line on the screen the text is scrolled
|
| 133 |
down.
|
| 134 |
|
| 135 |
*<RightMouse>*
|
|
|
|
| 352 |
|
| 353 |
*v_b_<*
|
| 354 |
Visual-block Shift *v_b_>*
|
| 355 |
+
The block is shifted by 'shiftwidth'. The RHS of the block is irrelevant.
|
| 356 |
+
The LHS of the block determines the point from which to apply a right shift,
|
| 357 |
+
and padding includes TABs optimally according to 'ts' and 'et'. The LHS of
|
| 358 |
+
the block determines the point up to which to shift left.
|
| 359 |
See |v_b_>_example|.
|
| 360 |
See |v_b_<_example|.
|
| 361 |
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*wayland.txt* For Vim version 9.1. Last change: 2025
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -26,7 +26,8 @@ should equal to "gui" when running the GUI.
|
|
| 26 |
|
| 27 |
Wayland commands:
|
| 28 |
*:wlrestore* *:wl*
|
| 29 |
-
:wl[restore] [display] Reinitializes the connection to the Wayland
|
|
|
|
| 30 |
Useful when running Vim in a screen/tmux session that
|
| 31 |
continues running after the Wayland compositor
|
| 32 |
restarts.
|
|
@@ -105,7 +106,7 @@ To solve this problem, Vim implements a way of gaining focus in order to
|
|
| 105 |
access the clipboard, by creating a temporary transparent top-level surface.
|
| 106 |
This is by default disabled and can be enabled via the 'wlsteal' option.
|
| 107 |
Moreover, a seat that has a keyboard is also required, see 'wlseat', and the
|
| 108 |
-
xdg-shell protocol must be available.
|
| 109 |
the |+wayland_focus_steal| feature.
|
| 110 |
|
| 111 |
Note that this method can have several side effects from the result of focus
|
|
|
|
| 1 |
+
*wayland.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 26 |
|
| 27 |
Wayland commands:
|
| 28 |
*:wlrestore* *:wl*
|
| 29 |
+
:wl[restore] [display] Reinitializes the connection to the Wayland
|
| 30 |
+
compositor.
|
| 31 |
Useful when running Vim in a screen/tmux session that
|
| 32 |
continues running after the Wayland compositor
|
| 33 |
restarts.
|
|
|
|
| 106 |
access the clipboard, by creating a temporary transparent top-level surface.
|
| 107 |
This is by default disabled and can be enabled via the 'wlsteal' option.
|
| 108 |
Moreover, a seat that has a keyboard is also required, see 'wlseat', and the
|
| 109 |
+
xdg-shell protocol must be available. Additionally, Vim must be compiled with
|
| 110 |
the |+wayland_focus_steal| feature.
|
| 111 |
|
| 112 |
Note that this method can have several side effects from the result of focus
|
|
@@ -1,4 +1,4 @@
|
|
| 1 |
-
*windows.txt* For Vim version 9.1. Last change: 2025 Oct
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
@@ -72,7 +72,7 @@ Each buffer has a unique number and the number will not change within a Vim
|
|
| 72 |
session. The |bufnr()| and |bufname()| functions can be used to convert
|
| 73 |
between a buffer name and the buffer number. There is one exception: if a new
|
| 74 |
empty buffer is created and it is not modified, the buffer will be re-used
|
| 75 |
-
when loading another file into that buffer.
|
| 76 |
will not change.
|
| 77 |
|
| 78 |
The main Vim window can hold several split windows. There are also tab pages
|
|
@@ -80,7 +80,7 @@ The main Vim window can hold several split windows. There are also tab pages
|
|
| 80 |
|
| 81 |
*window-ID* *winid* *windowid*
|
| 82 |
Each window has a unique identifier called the window ID. This identifier
|
| 83 |
-
will not change within a Vim session.
|
| 84 |
functions can be used to convert between the window/tab number and the
|
| 85 |
identifier. There is also the window number, which may change whenever
|
| 86 |
windows are opened or closed, see |winnr()|.
|
|
@@ -142,9 +142,9 @@ that have termcap codes for italics.
|
|
| 142 |
|
| 143 |
*filler-lines*
|
| 144 |
The lines after the last buffer line in a window are called filler lines. By
|
| 145 |
-
default, these lines start with a tilde (~) character.
|
| 146 |
-
'fillchars' option can be used to change this character.
|
| 147 |
-
characters are highlighted as NonText (|hl-NonText|).
|
| 148 |
highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
|
| 149 |
the filler characters.
|
| 150 |
|
|
@@ -912,7 +912,7 @@ CTRL-W CTRL-F Split current window in two. Edit file name under cursor.
|
|
| 912 |
|
| 913 |
CTRL-W F *CTRL-W_F*
|
| 914 |
Split current window in two. Edit file name under cursor and
|
| 915 |
-
jump to the line number following the file name.
|
| 916 |
details on how the line number is obtained.
|
| 917 |
|
| 918 |
CTRL-W gf *CTRL-W_gf*
|
|
@@ -1217,7 +1217,7 @@ list of buffers. |unlisted-buffer|
|
|
| 1217 |
Actually, the buffer isn't completely deleted, it is removed
|
| 1218 |
from the buffer list |unlisted-buffer| and option values,
|
| 1219 |
variables and mappings/abbreviations for the buffer are
|
| 1220 |
-
cleared.
|
| 1221 |
:.,$-bdelete " delete buffers from the current one to
|
| 1222 |
" last but one
|
| 1223 |
:%bdelete " delete all buffers
|
|
@@ -1245,7 +1245,7 @@ list of buffers. |unlisted-buffer|
|
|
| 1245 |
related to the buffer is lost. All marks in this buffer
|
| 1246 |
become invalid, option settings are lost, the jumplist and
|
| 1247 |
tagstack data will be purged, etc. Don't use this
|
| 1248 |
-
unless you know what you are doing.
|
| 1249 |
:.+,$bwipeout " wipe out all buffers after the current
|
| 1250 |
" one
|
| 1251 |
:%bwipeout " wipe out all buffers
|
|
@@ -1430,7 +1430,7 @@ help Contains a help file. Will only be created with the |:help|
|
|
| 1430 |
and can't be changed. The 'buflisted' option will be reset
|
| 1431 |
for a help buffer.
|
| 1432 |
|
| 1433 |
-
terminal A terminal window buffer, see |terminal|.
|
| 1434 |
be read or changed until the job ends.
|
| 1435 |
|
| 1436 |
directory Displays directory contents. Can be used by a file explorer
|
|
|
|
| 1 |
+
*windows.txt* For Vim version 9.1. Last change: 2025 Oct 12
|
| 2 |
|
| 3 |
|
| 4 |
VIM REFERENCE MANUAL by Bram Moolenaar
|
|
|
|
| 72 |
session. The |bufnr()| and |bufname()| functions can be used to convert
|
| 73 |
between a buffer name and the buffer number. There is one exception: if a new
|
| 74 |
empty buffer is created and it is not modified, the buffer will be re-used
|
| 75 |
+
when loading another file into that buffer. This also means the buffer number
|
| 76 |
will not change.
|
| 77 |
|
| 78 |
The main Vim window can hold several split windows. There are also tab pages
|
|
|
|
| 80 |
|
| 81 |
*window-ID* *winid* *windowid*
|
| 82 |
Each window has a unique identifier called the window ID. This identifier
|
| 83 |
+
will not change within a Vim session. The |win_getid()| and |win_id2tabwin()|
|
| 84 |
functions can be used to convert between the window/tab number and the
|
| 85 |
identifier. There is also the window number, which may change whenever
|
| 86 |
windows are opened or closed, see |winnr()|.
|
|
|
|
| 142 |
|
| 143 |
*filler-lines*
|
| 144 |
The lines after the last buffer line in a window are called filler lines. By
|
| 145 |
+
default, these lines start with a tilde (~) character. The 'eob' item in the
|
| 146 |
+
'fillchars' option can be used to change this character. By default, these
|
| 147 |
+
characters are highlighted as NonText (|hl-NonText|). The EndOfBuffer
|
| 148 |
highlight group (|hl-EndOfBuffer|) can be used to change the highlighting of
|
| 149 |
the filler characters.
|
| 150 |
|
|
|
|
| 912 |
|
| 913 |
CTRL-W F *CTRL-W_F*
|
| 914 |
Split current window in two. Edit file name under cursor and
|
| 915 |
+
jump to the line number following the file name. See |gF| for
|
| 916 |
details on how the line number is obtained.
|
| 917 |
|
| 918 |
CTRL-W gf *CTRL-W_gf*
|
|
|
|
| 1217 |
Actually, the buffer isn't completely deleted, it is removed
|
| 1218 |
from the buffer list |unlisted-buffer| and option values,
|
| 1219 |
variables and mappings/abbreviations for the buffer are
|
| 1220 |
+
cleared. Examples: >
|
| 1221 |
:.,$-bdelete " delete buffers from the current one to
|
| 1222 |
" last but one
|
| 1223 |
:%bdelete " delete all buffers
|
|
|
|
| 1245 |
related to the buffer is lost. All marks in this buffer
|
| 1246 |
become invalid, option settings are lost, the jumplist and
|
| 1247 |
tagstack data will be purged, etc. Don't use this
|
| 1248 |
+
unless you know what you are doing. Examples: >
|
| 1249 |
:.+,$bwipeout " wipe out all buffers after the current
|
| 1250 |
" one
|
| 1251 |
:%bwipeout " wipe out all buffers
|
|
|
|
| 1430 |
and can't be changed. The 'buflisted' option will be reset
|
| 1431 |
for a help buffer.
|
| 1432 |
|
| 1433 |
+
terminal A terminal window buffer, see |terminal|. The contents cannot
|
| 1434 |
be read or changed until the job ends.
|
| 1435 |
|
| 1436 |
directory Displays directory contents. Can be used by a file explorer
|